Wikibooks
enwikibooks
https://en.wikibooks.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.7
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
Wikibooks:Requests for deletion
4
385
4640467
4639594
2026-06-16T21:05:55Z
Carlossn77716
3607355
/* Scratch/Block Reference Guide */ new section
4640467
wikitext
text/x-wiki
__NEWSECTIONLINK__
[[Category:Wikibooks deletion|{{PAGENAME}}]]
{{Discussion Rooms}}
{{TOCleft}}
{{shortcut|WB:RFD}}
{{Requests for deletion/New deletion}}
{{Requests for deletion/Deletion intro}}
<!-- New deletion nominations go at the bottom of page. -->
== [[Salute, Jonathan!]] and its translations ==
<div style="column-count: 7;">
* [[Salute, Jonathan!|Interlingue/Occidental]] ([[w:en:Occidental|w]], original)
* [[Òla, Ionatà!|Audià]]
* [[Holo, Jonathan!|Cristianés]]
* [[Terve, Jonathan!|Ekumenski]]
* [[Hej, Jonathan! (Germanisch)|Germanisch]]
* [[Salom, Jonatan!|Globasa]]
* [[Àlŏ, Jonathan!|Guosa]] ([[w:en:Guosa|w]])
* [[Salut, Jonathan!|Idiom Neutral]] ([[w:en:Idiom Neutral|w]])
* [[Saluto, Jonathan! (Ido)|Ido]] ([[w:en:Ido|w]])
* [[Hallo, Jonathan!|Interlingua]] ([[w:en:Interlingua|w]])
* [[Salut, Jonathan! (Interocidental)|Interocidental]]
* [[Bune Ğonatan!|Lingaust]]
* [[Oila, Jonatan!|Lingue Simple]]
* [[Haloo, Jonatan!|Lingwa de Planeta]] ([[w:en:Lingwa de Planeta|w]])
* [[Sin Chao, Jonathan!|Masa Tang]]
* [[Salut, ionatano!|Meteza]]
* [[Salu, Jon!|Mini]]
* [[Hay, Jonathan!|Mirad]]
* [[Hai, Jon!|Monav]]
* [[Sesan Jon!|Monkel]]
* [[Salam, Jonathan!|Mundeze]]
* [[Dag, Jonathan!|Negerhollands]] ([[w:en:Negerhollands|w]])
* [[Salut Jonathan!|Neo]] ([[w:en:Neo|w]])
* [[Hej, Jonathan!|Nordien]]
* [[Saluto, Jonathan!|Novial]] ([[w:en:Novial|w]])
* [[Salute, Jonathan! (Novlingue)|Novlingue]]
* [[Alo, Jonathan!|Numo]]
* [[Hela, Jonathan!|Proyo]]
* [[Salute, Jonathan! (Romanica)|Romanica]] ([[w:en:Romanica|w]])
* [[Simi, Jonathan!|Solresol]] ([[w:en:Solresol|w]])
* [[Toki a, jan Jonatan!|Toki Pona]] ([[w:en:Toki Pona|w]])
* [[Glidis, o Jonathan!|Volapük]] ([[w:en:Volapük|w]])
</div>
There are a couple of issues here:
# Beyond their introductions, all of these books are written in languages which are not English, making them out of scope for the English Wikibooks.
# All but one of these books are in fact written in constructed languages, most of them in recently created conlangs. In some cases (e.g. [[Sin Chao, Jonathan!]]), I can't find any reliable sources describing the target language outside of the translation itself.
# Most of the translations (i.e. other than [[Salute, Jonathan!]] itself) were abandoned within the first five or so chapters (out of 100); none of them are complete, and there seems to be little effort to complete any of them.
While I recognize that this is an unusual project, and potentially one which could have some value, it's not at all clear to me that the English Wikibooks is the right place for it. — [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:24, 29 September 2024 (UTC)
: I'm really not sure what to do about these ones. While I recognize that this approach is certainly one method of teaching a language, I'm not sure that it constitutes an educational textbook. We do require that the English Wikibooks be written in English—for language-learning books, this typically means that the instructional parts are in English while the exercises are in the language being taught. I do think that if the language doesn't have much supporting evidence outside the book itself, it can safely be deleted. — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:01, 29 September 2024 (UTC)
: Author of the book here. I originally wanted to put it in the Interlingue Wikibooks https://ie.wikibooks.org/wiki/Principal_p%C3%A1gine but it somehow got locked when I wasn't paying attention and so I ended up putting it here. Getting it unlocked requires going through the process of starting an Incubator and all the rest so I opted for here and then started putting some English-only content once it was done. It's sort of in the same vein as books like Lingua Latina per se Illustrata that have separate versions with teacher notes and whatnot. [[Salute, Jonathan!/Capitul 1 - with notes]] After it was done the auxlang community really took to it which was a nice surprise. I think Ido has the largest number of chapters at the moment at 15.
:If the vast content of this book could be used to justify a quick reopening of the Interlingue Wikibooks to move it there, I'd love to do that. I imagine that an incubator with 100+ book chapters would be enough to open a Wikibooks and that's what this is. — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 06:02, 29 September 2024 (UTC)
: Ah, I just realized that we do have a proposal to reopen the Interlingue Wikibooks: https://meta.wikimedia.org/wiki/Requests_for_new_languages/Wikibooks_Interlingue along with an Incubator page here. https://incubator.wikimedia.org/wiki/Wb/ie/Principal_p%C3%A1gine
: How easy would it be to migrate the entirety of Salute Jonathan to there? — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 06:30, 29 September 2024 (UTC)
:: Hi @[[User:Mithridates|Mithridates]]! I'm not sure how incubator projects work, but I fully support migrating these books there. You may want to inquire over there and link to this discussion to support your request to move the content over there. Cheers! — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:16, 29 September 2024 (UTC)
::: Hi! Actually I have a third idea to propose after thinking about this again today (haven't been here much since I finished the book): I noticed that there is more English content than I remember and that might make it an awkward fit for the Interlingue Wikibooks. I definitely agree that having all the auxlang translations for new auxlang projects goes well beyond the scope of this Wikibooks. Finally, there are some auxlangs that are notable with their own Wikipedias.
::: So the idea is the following:
:::# Leave the original here and I can continue the work on the version with English notes and grammar. That will make it the same as Lingua Latina per se Illustrata, English by the Nature Method, Athenaze and all the rest.
:::# The Interlingua one can move to the Interlingua Wikibooks (maybe Romanica too if they want as it is sort of a dialect of Interlingua).
:::# For Ido and Lingua Franca Nova which have a Wikipedia but not a Wikibooks, I'm a little bit unsure...technically they could have their own version like the original one but would require English explanations. I could let them know and see if they are willing to do so and see what they think (work on adding English to the books vs. move the content elsewhere).
:::# The rest can move to a Github repo, then be deleted, and the front page of this book can have a single link to the repo.
::: Any thoughts on that? Adding the extra English content will be easy as it is my book and I know it inside and out.
::: Edit: [https://en.wikibooks.org/wiki/Salute,_Jonathan!/Grammar_(pronouns) this page] I just added. — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 13:50, 29 September 2024 (UTC)
:::: Thanks for taking the time to consider this! Here are my responses/questions:
::::* Is the original [[Salute, Jonathan!]] (Occidental)? Since that one is quite fleshed out, I agree that if you edit it so the primary language of the book (e.g. headers, instructions, etc) are written in English while leaving the actual story in Occidental, it would be okay and fit in more with instructional language textbooks.
::::* For your points 2 and 3, I'm not sure how those other projects work, so I'll leave it up to them. I'm not quite sure why they would need to move, since in theory they could be revised with English as the language of instruction? Although, they have been left incomplete for a long time.
::::* For your point 4, I have no problem with that. Cheers! — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 16:51, 29 September 2024 (UTC)
::::: Hello again, it's the weekend so I have a bit more time to work on this. I've decided to merge the extra content from the following five chapters since the difference is fairly small and the original chapters should now have this English content. Could you delete these five pages now that they are no longer needed? [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:02, 5 October 2024 (UTC)
::::: [[Salute, Jonathan!/Capitul 1 - with notes]]
::::: [[Salute, Jonathan!/Capitul 2 - with notes]]
::::: [[Salute, Jonathan!/Capitul 3 - with notes]]
::::: [[Salute, Jonathan!/Capitul 4 - with notes]]
::::: [[Salute, Jonathan!/Capitul 5 - with notes]] [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:02, 5 October 2024 (UTC)
:::::: [[File:Yes_check.svg|{{#ifeq:|small|8|15}}px|link=|alt=]] {{#ifeq:|small|<small>|}}'''Done'''{{#ifeq:|small|</small>|}} — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:34, 5 October 2024 (UTC)
::::::: Hi again! No luck trying to find a home for the random language translations on other auxlang wikis, can't find one that is actively maintained.
::::::: The thought struck me that maybe I could just put those ones on a sub page of my user page, would that be permitted? If not, I think I'll just stick them somewhere in GitHub and call it a day since none of the people who started the translations seem to care enough to do anything about them. I'd rather not see them outright disappear but since they aren't mine I don't care enough about them to do much more work than copy and paste them somewhere.
::::::: (I would leave the ones in languages with an ISO-639 code and Wikipedia here, of course) — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 14:13, 9 November 2024 (UTC)
:::::::: Thank you for checking! I don't personally see an issue with moving them to your user space right now. Cheers — [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 17:21, 9 November 2024 (UTC)
::::::::: Thanks a lot! I've started a single page where I will put them all here [[User:Mithridates/SJ]] and will proceed slowly due to lack of time and also to avoid stepping on any toes / asking you to delete too much at a time and possibly deleting the wrong content.
::::::::: For this week I have put the content for the languages Audia, Cristianès, Guosa, Lingaust, Mini, Mirad, and Monav on that page as they all have a single page of content and didn't take much time to move. Please delete those. Once they are gone I will add a note on the main page letting people know where they have gone (in addition to a thank you for their interest in the book! I do love how many people have recognized it as a good source material for teaching a language). — [[User:Mithridates|Mithridates]] ([[User talk:Mithridates|discuss]] • [[Special:Contributions/Mithridates|contribs]]) 04:09, 10 November 2024 (UTC)
: {{keep}} the translations for languages that have an article on the English Wikipedia, i.e. Guosa, Idiom Neutral, Ido, Interlingua, Lingwa de Planeta, Negerhollands, Neo, Novial, Occidental, Romanica, Solresol, Toki Pona, and Volapük.
: Translations for languages that don't have an article can be kept if they have reliable sources, which I was able to find for the following languages (if you think they are not reliable, please let me know):
:* Globasa: [https://www.languagesandnumbers.com/how-to-count-in-globasa/en/globasa/] [https://greyson.conlang.org/2020/01/29/shouting-out-globasa-and-pandunia/]
:* Mini: [https://jprogr.github.io/mini] [https://www.omniglot.com/language/phrases/mini.htm] [https://www.languagesandnumbers.com/how-to-count-in-mini/en/mini/]
: {{del}} and move to [[User:Mithridates/SJ]] the rest of the translations, i.e. Audià/Audian, Cristianés, Ekumenski, Germanisch, Interocidental, Lingaust, Lingue Simple, Masa Tang, Mirad, Monav, Monkel, Mundeze, Nordien, Novlingue, Numo, Proyo, and Scuian/Meteza. If you can find reliable sources for those languages, please let me know.
: In particular, I could not find resources for Audià/Audian and Monav after searching through 15 and 17 pages on Google, respectively. It doesn't help that [[Òla, Ionatà!|their]] [[Hai, Jon!|translations]] don't explain what those languages are and where to find resources for them. This makes contributing to those translations almost impossible until @[[User:Caro de Segeda|Caro de Segeda]] can provide resources to us. It's possible that the resources may have disappared from the Internet, or that those languages were created by Caro de Segeda him/herself. If you can find resources for Audià/Audian and Monav, please let me know.
: I'm notifying the primary contributors of the translations: @[[User:Caro de Segeda|Caro de Segeda]], @[[User:Frzzl|Frzzl]], @[[User:Greatscotteh|Greatscotteh]], @[[User:IHateNumbers234|IHateNumbers234]], @[[User:Jayeless2|Jayeless2]], @[[User:Morozof|Morozof]], @[[User:Omnihom|Omnihom]], @[[User:Omoutuazn|Omoutuazn]], @[[User:PovriNaivon|PovriNaivon]], @[[User:Sir Beluga|Sir Beluga]] and @[[User:Tyoyafud|Tyoyafud]]. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 09:52, 30 June 2025 (UTC)
:: Caro de Segeda said on [https://www.reddit.com/r/conlangs/comments/1lcnz9g/comment/n0sc3wx/ Reddit] that Monav was created by him/her and that he/she didn't publish any resources about it other than [[Hai, Jon!]]. With '''zero''' other resources to rely on for contributing to the translation, and the fact that Monav is in [[User:Mithridates/SJ]], [[Hai, Jon!]] should be speedy deleted. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 01:38, 3 July 2025 (UTC)
::: I've undone the speedy deletion as Caro de Segeda posted a [https://prexins.wordpress.com/2025/07/04/monav/ resource] for Monav. — [[User:EJPPhilippines|EJPPhilippines]] ([[User talk:EJPPhilippines|discuss]] • [[Special:Contributions/EJPPhilippines|contribs]]) 07:18, 4 July 2025 (UTC)
:::: You can delete all the ones that I have created myself, I have already moved them to other places. — [[User:Caro de Segeda|Caro de Segeda]] ([[User talk:Caro de Segeda|discuss]] • [[Special:Contributions/Caro de Segeda|contribs]]) 12:39, 5 July 2025 (UTC)
{{outdent|::::}}I don't know if this is helpful since it wouldn't apply to most of these, but [[s:mul:]] could hold some of these. — [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|discuss]] • [[Special:Contributions/Arlo Barnes|contribs]]) 09:18, 30 November 2025 (UTC)
: I don't think that would be within the scope of that project. I'm not aware of any other situation where Wikisource publishes translations of texts created on Wikimedia projects - that's usually left up to other language editions of the same project. — [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 05:34, 1 December 2025 (UTC)
:: In this situation there isn't a separate [[s:ie:]] distinct from Multilingual Wikisource (see [[meta:Wikisource#List of Wikisources]]). In fact, there are very few multilingual wikis in the Wikimedia sphere; while this project ''could'' move to a Miraheze-hosted or similar wiki farm location, I think it would be a missed opportunity. I suppose an [[Interlingue]] book could be started in [[shelf:Constructed languages]] which would have all 100 chapters as an appendix (and likewise for the other languages), but that also seems non-ideal since it requires an English-language text that doesn't currently exist to be created. [[WB:AT]] seems to describe a similar situation to this one and prescribe Wikisource as the solution, and [[WB:SOURCE]] mentions fiction as out-of-scope for Wikibooks (even as in this case, language-educational fiction). [[s:mul:Wikisource:about Wikisource]] simply speaks of source texts and doesn't mention publication requirements, so maybe that is specific to some of the monolingual editions? — [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|discuss]] • [[Special:Contributions/Arlo Barnes|contribs]]) 22:28, 5 December 2025 (UTC)
:{{keep}} 100% keep. These books are a core part of language textbooks on Wikibooks and have been for years. Not sure why this is even being debated.--[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 17:55, 16 May 2026 (UTC)
::With all due respect, some of the books included in this nomination (like [[Sin Chao, Jonathan!]]) are written in constructed languages which are not substantially attested anywhere else. I struggle to imagine any educational purpose for such a book. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:12, 17 May 2026 (UTC)
== [[International Baccalaureate]] ==
Not actually a book in and of itself; rather, it is just a compilation of links to other books —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:24, 18 October 2024 (UTC)
: Could this be salvaged as a shelf? [[User:Pppery|Pppery]] ([[User talk:Pppery|discuss]] • [[Special:Contributions/Pppery|contribs]]) 05:23, 27 January 2025 (UTC)
::Probably, but are the linked books even useful? IB exams change from year to year - sometimes quite dramatically - so an old exam guide is of very limited value. Many of these books were written 10-15 years ago, and some of them (like [[IB French]]) even have comments indicating that they're no longer applicable. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:18, 8 December 2025 (UTC)
== [[Character List for Baxter&Sagart]] ==
Seems completely out of scope as an educational book; it's just a list of characters and outlinks —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:53, 18 October 2024 (UTC)
:Adding [[Character List for Karlgren's GSR]] and [[Character List for Schuessler's CGSR]] for the same reason —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 23:55, 18 October 2024 (UTC)
:These three books do make a package and I agree they should be considered together. However, I strongly object to deleting them. They are really extremely useful resources. I use them every week and I know that many people who do work on Old Chinese phonology do so. There are lots of books out there that are lists of characters, these are called dictionaries. For example Axel Schuessler's ABC Etymological Dictionary of Old Chinese, or Pulleyblank's Lexicon of Reconstructed Pronunciation in Early Middle Chinese, Late Middle Chinese, and Early Mandarin. I see it as entirely a good thing for reference works of this kind to be available free online rather than only in expensive books in university research libraries. If this is in violation of a Wikibooks policy, I would at least like that policy to be drawn to my attention and to have some constructive comment offered about which Wikiproject such a resource should fall under. I will also say on a personal note that I have put literally hundreds of hours of work into these projects and it would grieve me a lot to see this work simply vanish, in particular when I know that colleagues around the world use these books. --[[User:Tibetologist|Tibetologist]] ([[User talk:Tibetologist|discuss]] • [[Special:Contributions/Tibetologist|contribs]]) 07:27, 1 November 2024 (UTC)
::Hi @[[User:Tibetologist|Tibetologist]], and thank you for the feedback! Official Wikibooks policy does not permit standalone dictionaries (see [[WB:DICT]]), though I understand the argument that it is a useful resource. I am wondering if there might be a home for it at [[Wiktionary:Wiktionary:Welcome, newcomers|Wiktionary]] or [[Wikiversity:Wikiversity:SHARE|Wikiversity]]? Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 12:14, 1 November 2024 (UTC)
:::The policy says to use Wiktionary, but these books cannot be moved there. In fact they link there, you can understand me as having made an index to wiktionary, if you like, where the ORDER of the characters is extremely important, information that would be lost in Wiktionary.
:::Wikiversity is not a project I participate in, and in any event my books here are older than it, so this option was not available for me at the relevant moment. If you are offering to move my books to Wikiversity, that is very kind of you and I will very graciously accept. [[User:Tibetologist|Tibetologist]] ([[User talk:Tibetologist|discuss]] • [[Special:Contributions/Tibetologist|contribs]]) 14:10, 1 November 2024 (UTC)
::::I have pinged over at Wikiversity Colloquium to ask about suitability and have looped you into the conversation over there. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:20, 1 November 2024 (UTC)
::I concur. I'm just an undergrad who tries to learn about Sino-Tibetan historical linguistics in his free time but I've found this wikibook to be incredibly useful, and I keep it open in one tab while I watch Professor Nathan Hill's lectures that he uploads to youtube in another tab, and another tab for taking notes. In fact if I remember correctly Professor Hill actually pointed his students to this wikibook.
::I'm not familiar with [[wikiversity:Wikiversity:SHARE|Wikiversity]] but if all the content were as accessible there as it is here then I think that could work. [[User:ChromeBones|ChromeBones]] ([[User talk:ChromeBones|discuss]] • [[Special:Contributions/ChromeBones|contribs]]) 02:43, 9 July 2025 (UTC)
:Per [[:v:Wikiversity:Colloquium#Import_Resource_From_Wikibooks?]], I recommend copying and pasting, including attribution via the edit summary and talk page, add appropriate categories and links, and then it could be deleted locally. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 22:32, 3 November 2024 (UTC)
== [[Suomen kieli käyttöön]] ==
Multiple pages in this book are written entirely in Finnish, which is out of the enWB scope. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 00:09, 19 October 2024 (UTC)
:I was going to say whether we should ask any fiwikibooks sysop to maybe see if this could be transwikied to fiwb if it's within the scope there. But [[:fi:Toiminnot:Käyttäjät/sysop]] indicates that there are only 3 sysops, and only {{u|Anr}} and {{u|Zache}} have made edits this ''year''. If they deem it to be salvageable, then transwiki + delete, otherwise straight-up delete. --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 11:24, 14 November 2024 (UTC)
::It seems that the idea behind the book was for the pages to be bilingual, as it’s a language learning book. That’s why there are Finnish texts included intentionally even on the pages that are complete. There are similar books in dewikibooks and ruwikibooks as well. For the English version, I think the easiest way to proceed would be to clean up and adjust the page layout to fit enwikibooks better, and then translate the missing parts. By the way, if anyone wants to update the book’s name in English, it can be titled ''"Using the Finnish Language"'' or ''"Put Finnish Language into Use"'' for a direct translation. [[User:Zache|Zache]] ([[User talk:Zache|discuss]] • [[Special:Contributions/Zache|contribs]]) 11:57, 14 November 2024 (UTC)
== [[AT&T Mobility FAQ]] ==
* [[AT&T Mobility FAQ]]
* [[AT&T Mobility FAQ/MEdia Net Configuration]]
* [[AT&T Mobility FAQ/Data Connect Configuration]]
An ''extremely'' outdated FAQ on AT&T's cell phone services. Most of this document was written 20+ years ago as a Usenet FAQ; very little of it is accurate or useful anymore (particularly the two subpages, which have to do with obsolete configurations for "tethering" a computer to a cell phone). No objection if someone wants to update it, but there's clearly been no appetite to do that. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:20, 30 December 2024 (UTC)
:I'm wondering if it might make sense for us to develop some kind of policy on archiving books here. There are many like this one that have a good deal of content but are extremely out of date and just not useful as originally intended. ——[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:34, 30 December 2024 (UTC)
::@[[User:Kittycataclysm|Kittycataclysm]]: See the newly developed [[Wikibooks:Outdated books]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 00:16, 31 December 2024 (UTC)
:::Ooh, thanks - something like that seems like it could be an appropriate way to handle this book. A lot of the other outdated books I've tagged have been so incomplete that they wouldn't have been particularly useful even as historical references; this one might at least have some interest.
:::Any chance we can get a separate namespace (maybe "Archive:") set up for archived book content? That'd make it possible to do things like exclude them from on-site search by default. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:07, 31 December 2024 (UTC)
::::I think this might be a more extended discussion, so I'll bump it over to the [[Wikibooks talk:Outdated books|talk page of the draft policy]]! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 21:54, 31 December 2024 (UTC)
== Algebra/Chapter 10/Symmetric Polynomials ==
I personally believe that [[Algebra/Chapter 10/Symmetric Polynomials|this]], and all of the sections should be deleted for the fact that this goes WAY beyond the scope of what was intended for the Chapter (Algebra II level polynomials). [[User:GoreyCat|GoreyCat]] ([[User talk:GoreyCat|discuss]] • [[Special:Contributions/GoreyCat|contribs]]) 15:07, 6 February 2025 (UTC)
:'''Split''': Deletion here is not the best solution (see [[w:WP:ATD]]). Instead, this page and its subpages should be moved to another book, most likely [[Abstract Algebra]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:35, 6 February 2025 (UTC)
:{{keep}} since there is a good amount of content. If [[Abstract Algebra]] is appropriate, it seems like a fine idea to move there. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:59, 7 February 2025 (UTC)
::Eh, yeah, I supposed moving it is better. I just don't think it's suitable for where it appears. [[User:GoreyCat|GoreyCat]] ([[User talk:GoreyCat|discuss]] • [[Special:Contributions/GoreyCat|contribs]]) 01:40, 8 February 2025 (UTC)
== [[Puredyne]] ==
Development of Puredyne Linux was discontinued in 2012, and the software no longer appears to be available for download anywhere. (An archive of the web site is still up - with a bunch of embedded spam links - but the download links are all dead.) Is this a suitable candidate for archival (cf. [[Wikibooks:Outdated books]]), or should it just be deleted? [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 04:35, 5 March 2025 (UTC)
:I'd just archive stuff like this. Looks like a decent bit of work went into it, and you never know when someone might need to use Puredyne for some obscure project. I'd be willing to bet mirrors exist of it somewhere, or someone has it on a drive. If you want to find some stuff worth deleting, comb through [[:Category:Allbooks categories]]. [[User:MediaKyle|MediaKyle]] ([[User talk:MediaKyle|discuss]] • [[Special:Contributions/MediaKyle|contribs]]) 11:30, 5 March 2025 (UTC)
== [[Template:Qr-twwp]] ==
This isn't exactly a request to delete the template, but rather to merge it with {{tlx|Copypaste}}. The {{tlx|Qr-twwp}} template serves the same purpose as {{tlx|Copypaste}}, but without the seven-day period after which the page is deleted. This leads to confusion, as well as a perpetually full [[:Category:Queried pages]]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:37, 30 March 2025 (UTC)
== [[Ghouls of the Miskatonic]] ==
I don't think that a plot summary of a book is in-scope here. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:43, 20 August 2025 (UTC)
:{{vd}} - at least, not a summary of ''this'' book. A summary and/or study guide to a notable work of literature might be in scope, but this is certainly not one. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:23, 25 August 2025 (UTC)
::Hi. I am the creator of the pages of this book. If I understand correctly, it has to be a summary of a notable work of literature? So what exactly is defined as such? I only started this as I thought it would be fun, interesting and encouraging to others who read the Arkham Horror novels, and I thought it was permitted as I've seen other summaries of books on wikibooks. [[User:Dayne90|Dayne90]] ([[User talk:Dayne90|discuss]] • [[Special:Contributions/Dayne90|contribs]]) 13:27, 26 August 2025 (UTC)
:::Your problem is it is just the plot... it needs to include an educational textual analysis to be in scope [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 12:47, 28 August 2025 (UTC)
::::And ideally it'd be a text which has ''already'' been the subject of literary analysis, such that the analysis on Wikibooks isn't original research. A notable work of literature like ''Frankenstein'' or ''Moby-Dick'' would easily meet that requirement; a tie-in novel for a tabletop RPG probably does not. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:08, 29 August 2025 (UTC)
== [[Template:Deleted page]] ==
Per [[Wikibooks:Reading room/Proposals#Retiring Template:Deleted page]], this is because the template is unnecessary given that creation protection (salting) is used instead. I am also proposing the deletion of the following categories used by this template:
* [[:Category:Protected deleted categories]]
* [[:Category:Protected deleted pages]]
Thanks. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 15:36, 29 January 2026 (UTC)
:This seems premature - [[:Category:Protected deleted pages]] is still in use for pages with generic names. Is there a plan to transition those pages to create protection; if so, can that be implemented before deleting the templates/categories? [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:28, 30 January 2026 (UTC)
::JJPMaster proposed that the pages listed in that category should be moved to the [[MediaWiki:Titleblacklist|title blacklist]], and that {{tlx|naming policy notice}} shall be fully protected and used as an interface (title blacklist) message. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 03:18, 30 January 2026 (UTC)
:::@[[User:Omphalographer|Omphalographer]]: Have you seen this reply? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 15:28, 11 February 2026 (UTC)
::::I have, but I'm not sure I follow. These templates, and the categories which they populate, are currently in use. Once that's no longer the case, I have no objection to deleting them - but they need to be delinked first. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 00:20, 12 February 2026 (UTC)
:::::I deleted the categories mentioned above, moved all the generic titles to the title blacklist, and for those pages that used {{tlx|Deleted page}}, I deleted then applied creation protection. An uninvolved admin can delete {{tlx|Deleted page}} and then close this request. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:39, 30 March 2026 (UTC)
== [[Cereal Grains Through History]] ==
Abandoned with no meaningful content —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:18, 30 March 2026 (UTC)
:[[User:Kittycataclysm|Kittycataclysm]]: The author (Karosent) objects to the deletion per their talk page:
{{quote|:Yes, please do not delete this wiki book. It is a work in progress. It is just taking some time to make progress on it. Thank you.}}
:{{courtesy ping}} to @[[User:Karosent|Karosent]] as the author of the book for their input. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:42, 30 March 2026 (UTC)
::If the user does intend to work on it, I think the best course of action would be moving it to user space until more progress is made. Having abandoned works around the main space is a bit messy. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:28, 28 April 2026 (UTC)
::: {{courtesy ping}} to [[User:Karosent|Karosent]] again. Do you agree with the pages being moved to your userspace? [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 02:23, 3 May 2026 (UTC)
== [[History of wireless telegraphy and broadcasting in Australia/Topical/Publications/Wireless Weekly/Issues/1928 03 23]] ==
Transcribed from a magazine copy that cannot be traced via the URL provided. Generally archival of primary source works is undertaken on Wikisource (not Wikibooks), backed by a suitable page scan. This isn't at present. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|discuss]] • [[Special:Contributions/ShakespeareFan00|contribs]]) 16:32, 27 April 2026 (UTC)
:This doesn't need an RfD since it is obviously out of scope. You can instead put a CSD tag on the page. Additionally, it seems that the entire /Publications section contains only source works here, so it might require a mass deletion. [[User:kingofnuthin|<span style="font-family: Georgia; color: lime">kingofnuthin</span>]] ([[User talk:kingofnuthin|<span style="font-family: Georgia; color: teal">talk</span>]]) 17:32, 27 April 2026 (UTC)
::@[[User:Samuel.dellit|Samuel.dellit]] looping you in here so you're aware. I don't think any pages like this (i.e. source text) can be kept here, since we are explicitly and unambiguously not a text repository per [[WB:SOURCE]]. I am inclined to speedily delete for that reason, but I want to hear from the primary editor. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:40, 27 April 2026 (UTC)
:::Thanks for looping me in.
:::This is not simply a transcription of the magazine.
:::It includes new formatting to make the content better reachable.
:::It includes commentary to place the transcribed material in context.
:::It permits related material to be placed in chronological order.
:::The version here is not complete (as per banner included), hence the URL link not working (National Library of Australia's Trove has been updated).
:::There is no point in placing this material on Wikisource as the Trove website is functionally similar and now provides for text correction (a fairly recent development).
:::I have not be editing Wikibooks for the last six month's following a personal matter but now slowly returning to the task.
:::[[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 19:08, 27 April 2026 (UTC)
::::I'm still not sure whether this makes it in-scope at Wikibooks and suitable for the book-like scope of this work, so I'm looping in other admins to weigh in on scope and consensus @[[User:Leaderboard|Leaderboard]] @[[User:MarcGarver|MarcGarver]] @[[User:JJPMaster|JJPMaster]] @[[User:SHB2000|SHB2000]]. For material that is planned but not yet enacted after a significant period, I'm wondering if user space is more suitable than main space. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 19:48, 3 May 2026 (UTC)
:::::This is just one page of a book, right? It's not like the entire wikibook is a transcription. I'm inclined to keep it unless there is something I am missing. "For material that is planned but not yet enacted after a significant period" - that's a draft and can generally stay in article space. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 05:09, 4 May 2026 (UTC)
::::::My thoughts are similar to Leaderboard's. --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 05:47, 4 May 2026 (UTC)
::::::@[[User:Leaderboard|Leaderboard]] @[[User:SHB2000|SHB2000]] Thank you, and good to know. Unless I am misunderstanding, the plan is actually to host many source texts in this book's namespace (see other subpages in [[History of wireless telegraphy and broadcasting in Australia/Topical/Publications]]) and not limited to this one page. Additionally, do we have anything in policy regarding how long drafts can stay in mainspace? I couldn't find anything, and it strikes me as unconstructive to the project if pages with significant issues (e.g. scope, quality, etc) are left in the mainspace for months to years. Cheers —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 19:15, 4 May 2026 (UTC)
:::::::@[[User:Kittycataclysm|Kittycataclysm]] Thank you for your considered responses, the following is provided as background summary.
:::::::(1) I should mention that all of these pages were speedily deleted six months ago on the basis of breach of copyright, despite the fact that they are in the public domain (yes I was remiss in not making this clear in the relevant discussion pages, and yes I was aware of the need for copyright explanation, but was overly focussed on content creation). I was hit by about 20 simultaneous speedily delete notifications, responded to 2 or 3 thinking that would be sufficient, but later found they had all been deleted (I was not active on Wikibooks at the time). My intention is to provide clear public domain information for each page in the coming months, but I am only one person and need time to give effect. Copyright worldwide is quite complex.
:::::::(2) I was hit by this RfD about 2 weeks ago, nominally a single subpage, but with the threat of dozens of subpages being similarly treated. This time the basis of the RfD was breach of the "Not a text repository" policy, of which I was not previously aware. I see in the policy that there is a clear exception for annotated texts and I will further develop content in support of that exception (you will see that is my general practice in any event). There are literally hundreds of articles in this Wikibook already heavily annotated, simply on the basis of good authorship e.g.
:::::::https://en.wikibooks.org/wiki/History_of_wireless_telegraphy_and_broadcasting_in_Australia/Topical/Biographies/Clement_Edgar_Ames/Notes
:::::::https://en.wikibooks.org/wiki/History_of_wireless_telegraphy_and_broadcasting_in_Australia/Topical/Stations/7BU_Burnie/Notes
:::::::But, again, I am only one person and need time to give effect. [[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 19:59, 4 May 2026 (UTC)
:::::::@[[User:Kittycataclysm|Kittycataclysm]] As far as I can see, isn't the goal to annotate most of those pages? And there is no set limit for a draft. The main reason we'd delete a draft is if the book ''itself'' has nothing of value, which is not the case here. [[User:Leaderboard|Leaderboard]] ([[User talk:Leaderboard|discuss]] • [[Special:Contributions/Leaderboard|contribs]]) 04:49, 5 May 2026 (UTC)
::::::::Got it, thank you! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 00:06, 6 May 2026 (UTC)
: As an admin who was involved in deleting this (and related subpages) and ''only'' undeleting it later per the author's request, I therefore '''recuse''' (will not do) on taking any administrative actions for this request. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:33, 27 April 2026 (UTC)
:{{vd}} - including other similar pages - per nom. Transcriptions of previously published works, like these magazines, belong on Wikisource. I don't see any evidence of substantial commentary in any of the pages I've looked at. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 17:47, 28 April 2026 (UTC)
::Additionally, I'd note that creating content like [[History of wireless telegraphy and broadcasting in Australia/Editing/Fair dealing]] or [[History of wireless telegraphy and broadcasting in Australia/Editing/Not a text repository]] is not helpful. This sort of argumentative content clearly does not belong in a book. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:14, 9 May 2026 (UTC)
:{{keep}} - including other similar pages - annotated texts WB:AT are a clear exception to Wikibooks "Not a text repository" policy; these are subpages of a very large body of work (I understand the largest Wikibook in Wikibooks) and integral to its overall development; yes, the pages are a work in progress and the annotations are as yet limited, but I will now prioritise their development[[User:Samuel.dellit|Samuel.dellit]] ([[User talk:Samuel.dellit|discuss]] • [[Special:Contributions/Samuel.dellit|contribs]]) 19:28, 3 May 2026 (UTC)
:{{keep}}. Annotated texts are an exception and while there can be a debate about how much annotation is enough, at the moment I think we should accept the primary editor's position in respect of their intent. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 13:58, 5 May 2026 (UTC)
: {{keep}} per above. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:07, 19 May 2026 (UTC)
== [[History Books]] ==
Minimal existing content is editorialized, book scope unclear, no sourcing —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 18:47, 27 April 2026 (UTC)
:{{comment}} - there is one unlinked subpage of this book, [[History Books/Who Was Alexander the Great/Introduction]]. I'm not impressed by the content (it's basically historical fiction written for a young child), but it's not hopeless. I'd encourage the author to create an account to allow us to communicate with them. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:34, 28 April 2026 (UTC)
::If it is really aimed at children, shouldn't it be moved to the Wikijunior: namespace? [[User:kingofnuthin|<span style="font-family: Georgia; color: lime">kingofnuthin</span>]] ([[User talk:kingofnuthin|<span style="font-family: Georgia; color: teal">talk</span>]]) 18:55, 28 April 2026 (UTC)
== [[FORTRAN program for calculating representative parameters and operating conditions of AC overhead transmission lines]] ==
As the title suggests, this page is primarily code for a computer program, not a book. Wikibooks is not a code hosting web site; this code might be more appropriate as a repository on a code hosting site such as Codeberg or GitHub. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:30, 28 April 2026 (UTC)
:{{Del}}, the book seems to be out of scope in its current state, especially considering that most of it is just code and it has no subpages. [[User:kingofnuthin|<span style="font-family: Georgia; color: lime">kingofnuthin</span>]] ([[User talk:kingofnuthin|<span style="font-family: Georgia; color: teal">talk</span>]]) 18:35, 28 April 2026 (UTC)
:I agree that this is not a book in its current form. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 22:26, 28 April 2026 (UTC)
::I have started the creation of this book and I request an additional time before deleting it. Since I started, some time has passed in which I have not been able to continue adding information, but I intend to add information on the way in which the different parameters of the overhead power lines are calculated, the electric and magnetic fields created by them, their operating regimes and the possible problems of overvoltage due to resonance phenomena in some cases. It was intended to show some of these questions with the calculations made with the program.
::If you give me an additional time to introduce more information later you can decide if that information is sufficient or not to keep the book. I have the problem that (as can be seen in this writing) my English is not good enough to introduce directly into the book what I am writing and I have to reredact everything using some artificial intelligence program; this delays the process much. Still I request a little more time to be able to show that the information introduced is of value.
::Thank you very much for your understanding. [[User:Jon Peli Oleaga|Jon Peli Oleaga]] ([[User talk:Jon Peli Oleaga|discuss]] • [[Special:Contributions/Jon Peli Oleaga|contribs]]) 13:29, 5 May 2026 (UTC)
::: @[[User:Jon Peli Oleaga|Jon Peli Oleaga]] I can move that book to your userspace, if requested. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:57, 19 May 2026 (UTC)
::::Thank you so much for the offer.
::::I know the book still needs a lot of improvement and that I'm working on it very slowly; but the problem is, strange as it may seem, I know how to edit a public book but I don't know how to work in my userspace, nor what I should do when the book is more finished to make it public.
::::In any case, if it's better to move the book to my userspace while it's still unfinished, then move it there and I'll try to work on it without the pressure of thinking it could be deleted at any moment.
::::Thanks again for the offer. [[User:Jon Peli Oleaga|Jon Peli Oleaga]] ([[User talk:Jon Peli Oleaga|discuss]] • [[Special:Contributions/Jon Peli Oleaga|contribs]]) 22:47, 31 May 2026 (UTC)
== [[Objective Projection: Why the Brain Never Forgets Some Stories]] ==
Undisclosed AI-generated content. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 02:13, 9 May 2026 (UTC)
:<nowiki>'''Keep'''</nowiki> — Comment from page author/subject expert.
:I am Levent Bulut, the originator of the <nowiki>''</nowiki>Objective Projection<nowiki>''</nowiki> methodology described in this book (ORCID: 0009-0007-7500-2261, Wikidata: Q138048287). I want to address the AI-generated content concern directly and transparently.
:<nowiki>'''</nowiki>On the content itself:<nowiki>'''</nowiki> The methodology, theoretical framework (the six-variable operator E(r) = projS(M, T, V, Δ, Ω, Ng), the Six Golden Rules, the Six-Layer Framework), and all original arguments are my own intellectual work, developed and published independently. This is documented through:
:* 26 DOI-registered academic publications on Zenodo (search: "Levent Bulut Objective Projection")
:* A peer-reviewed submission currently under review at <nowiki>''</nowiki>Digital Humanities Quarterly<nowiki>''</nowiki>
:* Parallel Turkish-language Wikibook and Wikiversity pages on the same methodology
:* An open-source SFT dataset on Hugging Face (leventbulut/objective-projection)
:<nowiki>'''</nowiki>On AI assistance:<nowiki>'''</nowiki> I used AI tools (Claude) for English translation polish and copy-editing from my Turkish source materials — the same way a non-native English-speaking academic would use a human translator or editor. The <nowiki>''</nowiki>ideas, structure, terminology, citations, and arguments<nowiki>''</nowiki> are entirely my own and pre-date the Wikibooks version, traceable through Zenodo DOI timestamps starting in 2025.
:<nowiki>'''</nowiki>Proposed remedy instead of deletion:<nowiki>'''</nowiki> I am happy to:
:# Add a clear AI-assistance disclosure to the book's preface, per Wikibooks transparency norms
:# Add inline citations to the underlying DOI-registered publications for every major claim
:# Link to the parallel Turkish version and academic record
:This would address the <nowiki>''</nowiki>undisclosed<nowiki>''</nowiki> part of the concern (which is the actionable policy issue) while preserving content that is original academic work by an identifiable author with a published track record. Deletion of original scholarship because translation assistance was used would set a concerning precedent for non-native English contributors.
:<nowiki>I request a few days to add the disclosure and citations before any deletion action. ~~~~</nowiki> [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 18:46, 13 May 2026 (UTC)
::Administrative assistance needed: Automated filters blocking structural improvements and disclosures
::'''Request for Help''' — I am Levent Bulut, the author of this book. I have already provided my AI disclosure and academic credentials (ORCID, DOI list) here in this discussion.
::I am trying to update the book to comply with Wikibooks standards by:
::Adding a formal '''AI assistance disclosure''' at the top of the page.
::Restructuring the content into an '''instructional textbook format''' (adding Learning Objectives).
::Converting plain text formulas into '''LaTeX''' ( format).
::Updating references to include full academic '''DOI''' records.
::However, the automated filter is blocking all my attempts:
::If I try to replace the content with the improved version, it triggers the '''"large amount of content removal"''' filter.
::If I try to add specific academic links, it triggers the '''"automated link/spam"''' filter.
::I am essentially trapped by the filters while trying to improve the book and follow transparency norms. Could an administrator please either whitelist my account or manually apply the improved version of the text? I am ready to provide the full MediaWiki code here if requested. My intent is purely constructive and academic. [[Special:Contributions/~2026-28847-60|~2026-28847-60]] ([[User talk:~2026-28847-60|talk]]) 19:15, 13 May 2026 (UTC)
::: Hi, @[[User:~2026-28847-60|~2026-28847-60]]. Your account was incorrectly locked by a steward. It is now currently unlocked. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:44, 15 May 2026 (UTC)
::Please review [[Wikibooks:Artificial intelligence]]. It states unequivocally that {{tq|LLMs may not be used to generate or summarize material and ideas at Wikibooks}}, and that {{tq|translations made by LLMs are not allowed on Wikibooks}}. The fact that you did not disclose your usage of AI is part of the problem, but disclosing it does not make it allowable either.
::More broadly, based on what you've said above, the content of this book is a reflection of your personal theories on writing. This is essentially [[Wikibooks:Original research]] and is not permitted. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 22:36, 13 May 2026 (UTC)
== [[The Encyclopaedia for Everything]] ==
We are explicitly not an encyclopedia per [[WB:WIW]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:53, 7 June 2026 (UTC)
:{{vd}} - we already have one of those; it's called Wikipedia. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 21:22, 8 June 2026 (UTC)
== [[Scratch/Block Reference Guide]] ==
I no longer Review page--[[User:Carlossn77716|Carlossn77716]] ([[User talk:Carlossn77716|discuss]] • [[Special:Contributions/Carlossn77716|contribs]]) 21:05, 16 June 2026 (UTC)
af93xpn00sonxl7rldu14tcbl5hn7s7
Cookbook:Coffee
102
7379
4640463
4640392
2026-06-16T20:57:08Z
Kittycataclysm
3371989
Undid revision [[Special:Diff/4640392|4640392]] by [[Special:Contributions/Rodrigo|Rodrigo]] ([[User talk:Rodrigo|discuss]]); not appropriate instructional content for the Cookbook
4640463
wikitext
text/x-wiki
__NOTOC__
{{Ingredient summary
| Image = [[File:A small cup of coffee.JPG|300px]]
}}
{{ingredient}}
'''Coffee''' is a flavorful liquid brewed from coffee beans.
== Production ==
=== Cleaning ===
Since coffee seeds are held within the pulp of the fruit, the pulp must be crushed and removed.<ref name=":7">{{Cite book |last=Friberg |first=Bo |url=https://books.google.com/books?id=gmpkzgAACAAJ&newbks=0&hl=en |title=The Professional Pastry Chef: Fundamentals of Baking and Pastry |date=2016-09-13 |publisher=Wiley |isbn=978-0-470-46629-2 |language=en}}</ref> After this, the beans ferment slightly in order to get rid of the mucilage surrounding the hull before drying completely.<ref name=":7" /> The hull is cracked to expose the seeds, called coffee beans.<ref name=":6">{{Cite book |last=Labensky |first=Sarah |url=https://books.google.com/books?id=k87uoQEACAAJ&newbks=0&hl=en |title=On Baking: A Textbook of Baking and Pastry Fundamentals, Updated Edition |last2=Martel |first2=Priscilla |last3=Damme |first3=Eddy Van |date=2015-01-06 |publisher=Pearson Education |isbn=978-0-13-388675-7 |language=en}}</ref>
=== Decaffeination ===
Coffee beans naturally contain a good amount of caffeine, but some coffee beans are treated to remove it before roasting. This can either be done by treating the beans with a solvent or scraping away the outer caffeinated layer.<ref name=":3">{{Cite book |last=Rinsky |first=Glenn |url=https://books.google.com/books?id=mZhyDwAAQBAJ&newbks=0&hl=en |title=The Pastry Chef's Companion: A Comprehensive Resource Guide for the Baking and Pastry Professional |last2=Rinsky |first2=Laura Halpin |date=2008-02-28 |publisher=John Wiley & Sons |isbn=978-0-470-00955-0 |language=en}}</ref><ref name=":1">{{Cite book |last=Labensky |first=Sarah R. |url=https://books.google.com/books?id=E3t-swEACAAJ&newbks=0&hl=en |title=On Cooking: A Textbook of Culinary Fundamentals |last2=Hause |first2=Alan M. |last3=Martel |first3=Priscilla |date=2018-01-18 |publisher=Pearson |isbn=978-0-13-444190-0 |language=en}}</ref>
[[File:Roasted_coffee_beans.jpg|thumb|Roasted coffee beans]]
=== Roasting ===
Because the green, raw beans don't have much complexity of flavor, they must be roasted.<ref name=":2">{{Cite book |last=The Chefs of Le Cordon Bleu |first= |url=https://books.google.com/books?id=Xni7wAEACAAJ&newbks=0&hl=en |title=Le Cordon Bleu Patisserie and Baking Foundations |date=2011-12-02 |publisher=Cengage Learning |isbn=978-1-4390-5713-1 |language=en}}</ref><ref>{{Cite book |last=deMan |first=John M. |url=https://books.google.com/books?id=sGNLDwAAQBAJ&newbks=0&hl=en |title=Principles of Food Chemistry |last2=Finley |first2=John W. |last3=Hurst |first3=W. Jeffrey |last4=Lee |first4=Chang Yong |date=2018-02-09 |publisher=Springer |isbn=978-3-319-63607-8 |language=en}}</ref> This can occur over a range of temperatures (180–240°C/350–465°F) and times (10–35 minutes) to produce the desired final effect.<ref name=":7" /> This process causes them to darken and brown, developing the characteristic finished coffee flavor.<ref name=":1" /><ref name=":4">{{Cite book |title=Encyclopedia of food chemistry. Vol. 1 |date=2019 |publisher=Elsevier |isbn=978-0-12-816848-6 |editor-last=Varelis |editor-first=Peter |volume=1 |location=Oxford |editor-last2=Melton |editor-first2=Laurence |editor-last3=Shahidi |editor-first3=Fereidoon}}</ref> Typically, the lighter the roast, the sweeter the profile; and, the darker the roast, the stronger and more bitter.<ref name=":4" />
After roasting, beans may be treated with a flavoring component (e.g. vanilla, chocolate, spices).<ref name=":1" />
=== Grinding ===
In most circumstances, coffee beans must be ground to a powder prior to use, either by the manufacturer or the consumer. The finer the grind, the less time necessary to properly brew the coffee, the sooner it can become overbrewed, and vice versa. As such, fine grinds are used for speedy preparation methods like espresso, while coarse grinds are better for drip.<ref name=":1" />
=== Brewing ===
There are a number of ways to brew coffee—in all methods, ground coffee beans and water are combined, with the water extracting the aromatic compounds in the beans. Typically, this is done by either steeping the ground beans in water or forcing hot water through the grounds.<ref name=":1" />
After brewing, liquid coffee may be dehydrated to produce '''instant coffee''' powder—this can be combined with water to immediately make coffee without needing to brew it.<ref name=":3" />
== Characteristics ==
Coffee contains caffeine in a relatively high quantity, which can cause alertness and increased sense of energy when consumed.
=== Bean ===
Coffee beans come in two main classes, which contributes to their flavor profile. Robusta beans are more common, though considered slightly inferior, and arabica beans are considered higher quality.<ref name=":2" /><ref name=":1" /> Additionally, the geographic growing region and other environmental conditions will also affect the flavor of the beans—as such, beans are often named after region of origin.<ref name=":1" />
=== Roast ===
After bean type, coffee beans can be further categorized by their degree of roasting, which typically ranges from light to medium and dark roasts. As the beans get darker and more roasted, they become oilier and develop a more complexly bitter flavor. Roasts may also be named slightly unintuitively, such as with "city" roast, "French" roast, and more.<ref name=":1" /><ref>{{Cite web |title=Coffee Roasts Guide |url=https://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide |access-date=2024-04-12 |website=www.ncausa.org}}</ref>
== Selection and storage ==
Coffee beans are best fresh, and their flavor will degrade as they age. Surface area plays a large part in the degradation process, so ground coffee degrades considerably faster than whole coffee beans.<ref name=":3" /> The degradation process is also accelerated by oxidation, so roasted coffee should be stored in airtight containers—and even in the freezer—to minimize oxidation.<ref name=":3" /><ref name=":1" /> But in general, freshly ground, newly roasted beans will always give a better cup of coffee than pre-ground, older beans.
Once brewed, coffee still has a pretty short lifespan and should be used fresh. Excessive heating and oxidation will again degrade the flavor, so it's not recommended to keep brewed coffee on a heat source for very long.<ref name=":1" />
== Preparation ==
Many factors in the brewing process contribute to the final product. Clean fresh water is necessary, and the temperature of the water will have some bearing on the result as well. Cooler water will not extract flavors as efficiently as hot water, but boiling water can make an overly bitter brew, especially with very dark roasts. Lastly, the coarseness of the grind and the ratio of grounds to water are also important and vary according to the brewing method used. If you want stronger brewed coffee, use a higher ratio of ground coffee to water, rather than brewing for longer.<ref name=":1" />
=== French press ===
In this method, the grounds are placed into the bottom of a vessel, and hot water is poured onto them. The mixture sits for a few minutes, then a mesh strainer is pushed down onto the mass, and the coffee is poured off to drink. French presses are also suitable for use in cold brewing (see below).
=== Drip ===
In America, this is the most common brewing method. Here, the grounds are placed in a basket with a non-reactive liner and a small hole in the bottom. Hot water is poured over the grounds, where it soaks them and steeps for a short time while being slowly forced by gravity through the hole into the container below.<ref name=":1" /> A good ratio for drip coffee is 2 tablespoons of finely ground coffee for every 6–7 oz water.<ref name=":1" /> Bring the water just to a boil, then pour slowly over the grounds, stirring gently. Stirring will result in the grounds retaining some extra water, but do not try to squeeze the water out—when it stops dripping, the coffee is ready to drink.
=== Espresso ===
[[Image:MokaCoffeePot.jpg|right|thumb|200px|Italian-style moka percolator]]In modern espresso machines, a fine grind of strong coffee is packed into a small metal container with a hole in the bottom. Pressurized water is quickly forced through the grounds into the pot below.<ref name=":1" /> A higher percentage of coffee solids are dissolved and extracted under pressure, creating an end product with more concentrated flavor. A moka-style percolator can also be used. Here, water is placed in the lower section, with the raw coffee grounds in the mid-section. As the water boils, it turns to steam—this creates enough pressure to force all the water from the lower section up through the grounds and into the upper reservoir. A good guide for making espresso is ¼ oz (7 g) ground beans per 1½ oz (45 ml) water.<ref name=":1" />
=== Cold brew ===
In cold brewing, heat is replaced with time. Here, the ground coffee is steeped at room temperature for 8–12 hours before straining. One proposed argument here is that cold-brewed coffee is less bitter than hot-brewed.<ref name=":1" />
== Use ==
[[File:Kaves inditas.webm|thumb|Morning coffe for the engine start (humorous short video)|120px]]
=== Beverages ===
The most common way to consume coffee is as a beverage, either plain or with milk/cream, sugar, or other flavorings.<ref name=":1" /> A variety of classic beverages exist, including but not limited to the following:<ref name=":3" /><ref name=":1" />
* '''Latte:''' Espresso and steamed milk
* '''Cappuccino:''' espresso, steamed milk, and foamed milk
* '''Mocha:''' espresso, steamed milk, and chocolate
* '''Americano:''' espresso and water
=== Cooking ===
Coffee is sometimes used in recipes, especially desserts but also savory dishes, where the bitterness adds complexity of flavor.<ref name=":5">{{Cite book |last=Ruhlman |first=Michael |url=https://books.google.com/books?id=cO6-wjf_XdgC&newbks=0&hl=en |title=The Elements of Cooking: Translating the Chef's Craft for Every Kitchen |date=2008 |publisher=Black Incorporated |isbn=978-1-86395-143-2 |language=en}}</ref> It goes well with many spices, and the flavour of chocolate is known to be enhanced by the addition of a small amount of coffee. Notable preparations that always or may include coffee include tiramisu, custards, and ice cream.<ref name=":6" /><ref name=":3" /><ref name=":2" />
When used as an ingredient, coffee tends to be incorporated in one of the following options. The first is to simply incorporate coffee brewed with water directly into the recipe. If a different liquid is being used, the coffee can be steeped in that instead.<ref name=":6" /><ref name=":0">{{Cite book |last=The Culinary Institute of America (CIA) |first= |url=https://books.google.com/books?id=Jl0EEAAAQBAJ&newbks=0 |title=Baking and Pastry: Mastering the Art and Craft |date=2015-02-25 |publisher=John Wiley & Sons |isbn=978-0-470-92865-3 |language=en}}</ref> Instant coffee powder is also an easy option, as it readily dissolves into a dish without needing to add a large volume of liquid.<ref name=":0" />
== Recipes ==
<div style="column-count:3">
<categorytree mode="all">Recipes using coffee</categorytree>
</div>
== References ==
[[Category:Featured ingredient candidate|{{PAGENAME}}]]
[[he:ספר מתכונים/קפה]]
5mu6ako2qjsh7ml01vwf4myejfckiqa
4640464
4640463
2026-06-16T20:57:35Z
Kittycataclysm
3371989
Restoring revision 4520411 by [[Special:Contributions/Kittycataclysm|Kittycataclysm]]: inappropriate instructional content for the Cookbook
4640464
wikitext
text/x-wiki
__NOTOC__
{{Ingredient summary
| Image = [[File:A small cup of coffee.JPG|300px]]
}}
{{ingredient}}
'''Coffee''' is a flavorful liquid brewed from coffee beans.
== Production ==
=== Cleaning ===
Since coffee seeds are held within the pulp of the fruit, the pulp must be crushed and removed.<ref name=":7">{{Cite book |last=Friberg |first=Bo |url=https://books.google.com/books?id=gmpkzgAACAAJ&newbks=0&hl=en |title=The Professional Pastry Chef: Fundamentals of Baking and Pastry |date=2016-09-13 |publisher=Wiley |isbn=978-0-470-46629-2 |language=en}}</ref> After this, the beans ferment slightly in order to get rid of the mucilage surrounding the hull before drying completely.<ref name=":7" /> The hull is cracked to expose the seeds, called coffee beans.<ref name=":6">{{Cite book |last=Labensky |first=Sarah |url=https://books.google.com/books?id=k87uoQEACAAJ&newbks=0&hl=en |title=On Baking: A Textbook of Baking and Pastry Fundamentals, Updated Edition |last2=Martel |first2=Priscilla |last3=Damme |first3=Eddy Van |date=2015-01-06 |publisher=Pearson Education |isbn=978-0-13-388675-7 |language=en}}</ref>
=== Decaffeination ===
Coffee beans naturally contain a good amount of caffeine, but some coffee beans are treated to remove it before roasting. This can either be done by treating the beans with a solvent or scraping away the outer caffeinated layer.<ref name=":3">{{Cite book |last=Rinsky |first=Glenn |url=https://books.google.com/books?id=mZhyDwAAQBAJ&newbks=0&hl=en |title=The Pastry Chef's Companion: A Comprehensive Resource Guide for the Baking and Pastry Professional |last2=Rinsky |first2=Laura Halpin |date=2008-02-28 |publisher=John Wiley & Sons |isbn=978-0-470-00955-0 |language=en}}</ref><ref name=":1">{{Cite book |last=Labensky |first=Sarah R. |url=https://books.google.com/books?id=E3t-swEACAAJ&newbks=0&hl=en |title=On Cooking: A Textbook of Culinary Fundamentals |last2=Hause |first2=Alan M. |last3=Martel |first3=Priscilla |date=2018-01-18 |publisher=Pearson |isbn=978-0-13-444190-0 |language=en}}</ref>
[[File:Roasted_coffee_beans.jpg|thumb|Roasted coffee beans]]
=== Roasting ===
Because the green, raw beans don't have much complexity of flavor, they must be roasted.<ref name=":2">{{Cite book |last=The Chefs of Le Cordon Bleu |first= |url=https://books.google.com/books?id=Xni7wAEACAAJ&newbks=0&hl=en |title=Le Cordon Bleu Patisserie and Baking Foundations |date=2011-12-02 |publisher=Cengage Learning |isbn=978-1-4390-5713-1 |language=en}}</ref><ref>{{Cite book |last=deMan |first=John M. |url=https://books.google.com/books?id=sGNLDwAAQBAJ&newbks=0&hl=en |title=Principles of Food Chemistry |last2=Finley |first2=John W. |last3=Hurst |first3=W. Jeffrey |last4=Lee |first4=Chang Yong |date=2018-02-09 |publisher=Springer |isbn=978-3-319-63607-8 |language=en}}</ref> This can occur over a range of temperatures (180–240°C/350–465°F) and times (10–35 minutes) to produce the desired final effect.<ref name=":7" /> This process causes them to darken and brown, developing the characteristic finished coffee flavor.<ref name=":1" /><ref name=":4">{{Cite book |title=Encyclopedia of food chemistry. Vol. 1 |date=2019 |publisher=Elsevier |isbn=978-0-12-816848-6 |editor-last=Varelis |editor-first=Peter |volume=1 |location=Oxford |editor-last2=Melton |editor-first2=Laurence |editor-last3=Shahidi |editor-first3=Fereidoon}}</ref> Typically, the lighter the roast, the sweeter the profile; and, the darker the roast, the stronger and more bitter.<ref name=":4" />
After roasting, beans may be treated with a flavoring component (e.g. vanilla, chocolate, spices).<ref name=":1" />
=== Grinding ===
In most circumstances, coffee beans must be ground to a powder prior to use, either by the manufacturer or the consumer. The finer the grind, the less time necessary to properly brew the coffee, the sooner it can become overbrewed, and vice versa. As such, fine grinds are used for speedy preparation methods like espresso, while coarse grinds are better for drip.<ref name=":1" />
=== Brewing ===
There are a number of ways to brew coffee—in all methods, ground coffee beans and water are combined, with the water extracting the aromatic compounds in the beans. Typically, this is done by either steeping the ground beans in water or forcing hot water through the grounds.<ref name=":1" />
After brewing, liquid coffee may be dehydrated to produce '''instant coffee''' powder—this can be combined with water to immediately make coffee without needing to brew it.<ref name=":3" />
== Characteristics ==
Coffee contains caffeine in a relatively high quantity, which can cause alertness and increased sense of energy when consumed.
=== Bean ===
Coffee beans come in two main classes, which contributes to their flavor profile. Robusta beans are more common, though considered slightly inferior, and arabica beans are considered higher quality.<ref name=":2" /><ref name=":1" /> Additionally, the geographic growing region and other environmental conditions will also affect the flavor of the beans—as such, beans are often named after region of origin.<ref name=":1" />
=== Roast ===
After bean type, coffee beans can be further categorized by their degree of roasting, which typically ranges from light to medium and dark roasts. As the beans get darker and more roasted, they become oilier and develop a more complexly bitter flavor. Roasts may also be named slightly unintuitively, such as with "city" roast, "French" roast, and more.<ref name=":1" /><ref>{{Cite web |title=Coffee Roasts Guide |url=https://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide |access-date=2024-04-12 |website=www.ncausa.org}}</ref>
== Selection and storage ==
Coffee beans are best fresh, and their flavor will degrade as they age. Surface area plays a large part in the degradation process, so ground coffee degrades considerably faster than whole coffee beans.<ref name=":3" /> The degradation process is also accelerated by oxidation, so roasted coffee should be stored in airtight containers—and even in the freezer—to minimize oxidation.<ref name=":3" /><ref name=":1" /> But in general, freshly ground, newly roasted beans will always give a better cup of coffee than pre-ground, older beans.
Once brewed, coffee still has a pretty short lifespan and should be used fresh. Excessive heating and oxidation will again degrade the flavor, so it's not recommended to keep brewed coffee on a heat source for very long.<ref name=":1" />
== Preparation ==
Many factors in the brewing process contribute to the final product. Clean fresh water is necessary, and the temperature of the water will have some bearing on the result as well. Cooler water will not extract flavors as efficiently as hot water, but boiling water can make an overly bitter brew, especially with very dark roasts. Lastly, the coarseness of the grind and the ratio of grounds to water are also important and vary according to the brewing method used. If you want stronger brewed coffee, use a higher ratio of ground coffee to water, rather than brewing for longer.<ref name=":1" />
=== French press ===
In this method, the grounds are placed into the bottom of a vessel, and hot water is poured onto them. The mixture sits for a few minutes, then a mesh strainer is pushed down onto the mass, and the coffee is poured off to drink. French presses are also suitable for use in cold brewing (see below).
=== Drip ===
In America, this is the most common brewing method. Here, the grounds are placed in a basket with a non-reactive liner and a small hole in the bottom. Hot water is poured over the grounds, where it soaks them and steeps for a short time while being slowly forced by gravity through the hole into the container below.<ref name=":1" /> A good ratio for drip coffee is 2 tablespoons of finely ground coffee for every 6–7 oz water.<ref name=":1" /> Bring the water just to a boil, then pour slowly over the grounds, stirring gently. Stirring will result in the grounds retaining some extra water, but do not try to squeeze the water out—when it stops dripping, the coffee is ready to drink.
=== Espresso ===
[[Image:MokaCoffeePot.jpg|right|thumb|200px|Italian-style moka percolator]]In modern espresso machines, a fine grind of strong coffee is packed into a small metal container with a hole in the bottom. Pressurized water is quickly forced through the grounds into the pot below.<ref name=":1" /> A higher percentage of coffee solids are dissolved and extracted under pressure, creating an end product with more concentrated flavor. A moka-style percolator can also be used. Here, water is placed in the lower section, with the raw coffee grounds in the mid-section. As the water boils, it turns to steam—this creates enough pressure to force all the water from the lower section up through the grounds and into the upper reservoir. A good guide for making espresso is ¼ oz (7 g) ground beans per 1½ oz (45 ml) water.<ref name=":1" />
=== Cold brew ===
In cold brewing, heat is replaced with time. Here, the ground coffee is steeped at room temperature for 8–12 hours before straining. One proposed argument here is that cold-brewed coffee is less bitter than hot-brewed.<ref name=":1" />
== Use ==
=== Beverages ===
The most common way to consume coffee is as a beverage, either plain or with milk/cream, sugar, or other flavorings.<ref name=":1" /> A variety of classic beverages exist, including but not limited to the following:<ref name=":3" /><ref name=":1" />
* '''Latte:''' Espresso and steamed milk
* '''Cappuccino:''' espresso, steamed milk, and foamed milk
* '''Mocha:''' espresso, steamed milk, and chocolate
* '''Americano:''' espresso and water
=== Cooking ===
Coffee is sometimes used in recipes, especially desserts but also savory dishes, where the bitterness adds complexity of flavor.<ref name=":5">{{Cite book |last=Ruhlman |first=Michael |url=https://books.google.com/books?id=cO6-wjf_XdgC&newbks=0&hl=en |title=The Elements of Cooking: Translating the Chef's Craft for Every Kitchen |date=2008 |publisher=Black Incorporated |isbn=978-1-86395-143-2 |language=en}}</ref> It goes well with many spices, and the flavour of chocolate is known to be enhanced by the addition of a small amount of coffee. Notable preparations that always or may include coffee include tiramisu, custards, and ice cream.<ref name=":6" /><ref name=":3" /><ref name=":2" />
When used as an ingredient, coffee tends to be incorporated in one of the following options. The first is to simply incorporate coffee brewed with water directly into the recipe. If a different liquid is being used, the coffee can be steeped in that instead.<ref name=":6" /><ref name=":0">{{Cite book |last=The Culinary Institute of America (CIA) |first= |url=https://books.google.com/books?id=Jl0EEAAAQBAJ&newbks=0 |title=Baking and Pastry: Mastering the Art and Craft |date=2015-02-25 |publisher=John Wiley & Sons |isbn=978-0-470-92865-3 |language=en}}</ref> Instant coffee powder is also an easy option, as it readily dissolves into a dish without needing to add a large volume of liquid.<ref name=":0" />
== Recipes ==
<div style="column-count:3">
<categorytree mode="all">Recipes using coffee</categorytree>
</div>
== References ==
[[Category:Featured ingredient candidate|{{PAGENAME}}]]
[[he:ספר מתכונים/קפה]]
415p2mme6m613mf817z3d2bizqqggjo
Aros/Developer/Docs
0
13107
4640452
4639947
2026-06-16T14:51:31Z
Jeff1138
301139
4640452
wikitext
text/x-wiki
{{ArosNav}}
==A technical overview of AROS==
Google translation [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs French], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Hindi], [http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Chinese],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Russian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pt&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Portuguese]
{{Uncited}}
AROS,<ref>[http://aros.sourceforge.net/download.php References and sources]</ref> like AmigaOS (TM), is a [[w:Message passing|message-passing]], [[w:Preemption (computing)|preemptive]] [[w:Multitasking|multitasking]] [[w:Operating system|OS]].
It uses [[w:Reentrant (subroutine)|re-entrant]] shared libraries to save memory space.
AROS is based around an executive library kernel (Exec) and two other libraries:
* Exec (the "kernel", which is not a kernel in the modern sense),
* Intuition (graphics and GUI, integrated into the system) and
* AmigaDOS (Disk Operating System, the Metacomco's Tripos modified to work with Exec).
The design philosophies of AmigaDOS and Intuition are rather different, the former adopting a C-like API and the latter creating an [http://www.basden.demon.co.uk/amiga/amiga.oo.html object-oriented], message passing aware environment for the programmer. The system base is the only absolute address in AmigaOS (located at 0x00000004) this does differ with AROS as AROS SysBase is automatically provided (no $4) but everything else is dynamically loaded. The OS is well known for delivering high performance due to its close connections with the hardware, while simultaneously having the flexibility to support re-targetable graphics (Cybergraphics) and retargetable audio subsystems (AHI).
: Diagram showing relationships of libraries to system needed
Remember, AROS is a [http://en.wikibooks.org/wiki/Aros/Developer/ABIv1 research] operating system, and while all contributions to the base AROS code are welcome, please contact the dev list first for any core changes. Writing applications for AROS does not have this requirement.
While AROS appears and feels almost feature complete, it is still [[Aros/Developer/IncompleteAPIs|missing a small number of functions]] from the Amiga API - as well as a few implementations of [[Aros/MissingFunctionaility|core functionality]]. There are also a number of user applications that, while not strictly part of the AmigaOS 3.1 environment, need to be written.
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1201 This thread provides] information for setup, [http://www.aros.org/documentation/developers/index.php documentation] and whether you are interested in core OS changes and/or writing/porting software apps
*you compile directly under AROS, which can be running on either real hardware, virtual hardware
*in hosted mode under linux/window, cross-compile from that host OS (save your files as ISO-8859-15 encoding instead of UTF-8)
The repository for the [https://github.com/aros-development-team/AROS current development version ABIv1], the [https://github.com/deadw00d/AROS/tree/alt-abiv0 repository for current stable PC version ABIv0 with backported ABIv1 features is located which is used on AROS One and Icaros x86 based distros]
Any [https://github.com/aros-development-team/AROS/issues bugs / issues can be added]
We have a [https://arosdevteam.slack.com/archives/CUFV48U3H slack here], discord on [https://discord.gg/UKp9qdEBuQ Discord@AmigaDev],
==Software Development for AROS==
===Programming languages===
Apart from 'The Developer Environment', which primarily supports C/C++ code, there are other programming languages available for AROS:
'''Scripting'''
:[[Aros/User/DOS|DOS]], included in all
:[[Aros/Developer/Docs/LUA|LUA]], included in all or [http://www.airsoftsoftwair.de/en/prod_hollywood.html Hollywood]
:REXX [[Aros/Developer/Docs/Rexx|Regina (AROS' ARexx)]], included in all
:Python [ Info], included in Icaros
:Ruby [http://www.ruby-lang.org/en Info]/[http://archives.aros-exec.org/index.php?function=browse&cat=development/language download]
'''Basic'''
:[http://amos.pspuae.com/AmosProManual/contents/c1.html '''Amos Pro'''] [http://amos.pspuae.com/index.php?action=forum#1 compatible] [http://www.amigacoding.com/index.php/Main_Page commands] (all incomplete)
::[http://sourceforge.net/projects/xamos/ X-Amos]
::[http://sdlbasic.sourceforge.net/ SDLBasic] ([http://archives.aros-exec.org/index.php?function=browse&cat=development/language download])
::[http://alvyn.sourceforge.net/ Alvyn] ([http://www.dusabledanslherbe.eu/AROSPage/MISC.14.html download])
::[[Aros/Developer/Basic/Basic4SDL|Basic4SDL]] ([http://archives.aros-exec.org/index.php?function=browse&cat=development/language download])
::[http://www.ultimateamiga.co.uk/index.php?topic=9425.0 Project Deimos],
:'''Blitz Basic''' [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=46537#forumpost46537 none on AROS]
:: [http://www.amiforce.de/main.php Amiblitz] on JanusUAE amiga(TM) emulator
:'''Amiga Basic'''
:: [ ACEBasic]
'''Misc'''
:[[Aros/Developer/Docs/E|AmigaE Portable E]]
:[https://ae.arosworld.org/index.php?board=11.0 FreePascal FPC Aros-Exec thread], [http://archives.aros-exec.org/index.php?function=browse&cat=development/language Download], FreePascal for AROS has its own [http://fpcaroswiki.alb42.de/ Wikibook],
:[[Aros/Developer/Docs/LLVM|LLVM]],
===Where to get the C/C++ Environment===
If you want to develop for AROS, its generally easier to be running linux hosted AROS development environment especially for C++, cross compiling the code. That's how most developers now are doing it. g++ is used to compile owb web browser as well as some other AROS software. If you were hoping for a rich set of C++ libraries or classes defined for the OS feature set, you might be disappointed.
AROS Native compiling is possible, but you're much more likely to run into the odd bug(s) in the dev environment since it gets little testing and fixing by other developers.
Is there a sftp software or scp over ssh available?
Maybe. At least the security part would be handled by [https://github.com/jens-maus/amissl amissl] [https://archives.arosworld.org/index.php?function=browse&cat=network/misc port]. DOpus5 has recently added sftp support. See here for a [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1974&highlight=ssh&pid=12073#post_12073 ssh client]
[https://arosdevteam.slack.com/join/shared_invite/enQtOTc4Mzg0NDIzNzQ0LWQ2NWZmNmMwNGIwNGEyNTgxNzU3MGFjMTk3ZThmOTQ1MTVjMzhmNTllYWQ0ZTUxMjBjMGE0Y2VjMDJmNTc5MzI#/shared-invite/email Slack Dev Forum]
====Cross compilers from Windows or Linux====
*Windows WSL2 walkthrough can be [https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/ found here]
you want to build AROS. No problem.
Here are instructions for 64-bit:
https://github.com/deadw00d/AROS/blob/master/INSTALL.md
Here are instructions for 32-bit:
https://github.com/deadw00d/AROS/blob/alt-abiv0/INSTALL.md
And as always has been the case you can use the contrib archive to 'obtain' the development directory which contains the /native/ AROS gcc compiler and tools. That compiler is used to build AROS itself but can be used outside the AROS build process by providing --sysroot with indicated directory to cross compile for AROS.
=====Older guides for Linux hosted compiler=====
Please install these packages before moving to next step. Below is a reference list for Debian-based distributions. Reference build system was Ubuntu 18.04/20.04 amd64.
subversion git-core gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libx11-dev libxext-dev libc6-dev liblzo2-dev libxxf86vm-dev libpng-dev gcc-multilib libsdl1.2-dev byacc python-mako libxcursor-dev cmake zsh mingw64
Do all of these operations under home directory of your user or another directory where your user has write permissions.
Specifically, in a section "Linux-i386", be sure first to build the cross-compiler (toolchain-alt-abiv0-i386) and only then AROS itself (alt-abiv0-linux-i386).
Clone & build
<pre>
$ mkdir myrepo
$ cd myrepo
$ git clone https://github.com/deadw00d/AROS.git AROS
$ cd AROS
$ git checkout alt-abiv0
$ cd ..
$ cp ./AROS/scripts/rebuild.sh .
$ ./rebuild.sh
</pre>
Now to the build selection below - Linux-i386
Select toolchain-alt-abiv0-i386 - Select alt-abiv0-linux-i386 (DEBUG)
Start AROS by:
<pre>
$ cd alt-abiv0-linux-i386/bin/linux-i386/AROS
$ ./Arch/linux/AROSBootstrap
</pre>
Pc-i386 Select toolchain-alt-abiv0-i386 (if not built yet) - Select alt-abiv0-pc-i386
ISO image available in alt-abiv0-pc-i386/distfiles
Now that we have linux-hosted build, we can resume native (option 2).
Run ./rebuild.sh and selection option 2. Wait until it finished, then:
<pre>
$ cd alt-abiv0-pc-i386
$ make
</pre>
Now
<pre>
$ make bootiso
</pre>
Now, your compiler is located in toolchain-alt-abiv0-i386 directory and named i386-aros-gcc. Includes are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/include and libraries are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development.lib.
This is how then can be passed to the compiler:
/home/xxx/toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot /home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development -L/home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/lib
../toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot bin/linux-i386/AROS/Development local/helloworld/helloworld.c -o local/helloworld/helloworld
Another method was using Debian like distros and download the gimmearos.sh script (on [http://archives.aros-exec.org/index.php?function=browse&cat=development/cross aros-archives]) to setup the developer environment by downloading necessary packages ...
The gimmearos script is a good start in that direction, building the cross compilers and hosted AROS environment, but gimmearos.sh might be out of date or not be completely compatible with any given linux distro.
In order to do that, you have to compile AROS yourself. Download AROS source archive not contrib. Compile AROS by entering the main directory
./configure
make
([http://aros.sourceforge.net/documentation/developers/compiling.php More on compiling AROS]). The result will be a basic AROS system without development tools.
To compile C++ on Linux, type 'make gnu-contrib-crosstools', creating the cross-compilers in ./bin/linux-i386/tools/, named i386-aros-gcc, etc.
'''Note''': Currently, to make the cross compilers usable copy 'collect-aros' from tools/ to tools/i386-aros/bin/. At the moment the cross compilers if used from the Linux command line will only find it when it's there.
If you want to compile native compilers (the Developer Environment), type 'make contrib-gnu-gcc', creating native compilers in AROS' System:Development/bin directory.
When the output needs to be stripped <code>--strip-unneeded --remove-section .comment</code>
The Obj-C backend should build out of the box.
Open contrib/gnu/gcc/mmakefile.src and search for the line which contains "--enable-languages" and add "objc" to the list of languages that follows it.
--enable-languages=c,c++,objc
Better make it—enable-languages=c,c++,objc,obj-c++
ObjC++ is broken as soon as you try to use exceptions, but that might change in future GCC versions and it does not hurt having it there already.
Do you need a cross-compiler or a real compiler? In the first case you can get away with just downloading the proper gcc archive, apply the patch and proceed with the normal gcc build. In the case of a real cross-compiler then when downloading the contrib sources, also need to download the normal sources, place the contrib sources into a directory called contrib, need to install autoconf+automake+perl+python, call ./configure, cd into the subdirectory and type make.
to rebuild GCC with host == build == target == i386-pc-aros. So just get the vanilla sources and apply the patches without bothering about the build system?
[https://vmwaros.blogspot.com/2019/10/a-pre-configured-development-machine.html pre-configured VM environment vmware virtual machine to develop AROS and AROS software]
'''64 bit'''
'''32 bit'''
A good option for multiple OS is [https://axrt.org/index.php?tab=download-aros AxRuntime lets developers compile their Amiga API-based applications as Linux binaries being able to utilize modern development tools available on Linux, like IDEs, debuggers, profilers, etc]
====Native compilers for AROS====
Namely gcc for C or g++ for C++ are supplied with the [[Aros/Developer/Docs#The Developer Environment|Developer Environment]], which is already '''setup''' and part of any current AROS distribution like AROS One or the nightlies
* Current GCC 6.5 (32bit) though moving to 10.5 and 15.1 (64bit)
* Older software components. GNU GCC 4.x GNU BinUtils, GNU Fileutils 4.x, GNU Textutils and others.
On single partition systems and the Boot ISO, the AROS Developer environment is installed under "SYS:Development/". Systems with multiple partitions - such as a Work: partition - tend to install it to there instead, however it can be installed manually to any location. Please remember, if moving, that you will need to correct the Development packages 'install location' env variable to point to the new locations root - look in SYS:S/startup-sequence.
<pre>
Assign Development: SYS:Development
Assign C: Development:bin ADD
</pre>
In the aros build instructions. you need to check out contrib and/or ports into your AROS source directory, as subdirs. then, assuming you are building in an external build dir, as you should, you simply configure and "make contrib" for instance or whatever submodule you might want to build.
===Beginners Tutorials in C C++===
As AROS is [http://eab.abime.net/showthread.php?t=29856 C based] API compatible to AmigaOS 3.x, so most of the information on programming C on the Amiga applies to AROS as well. Please note that there is a lot of AmigaOS 1.3 (1985-1989) and [https://www.markround.com/amigaguide AmigaOS AOS 2.x (1990-1992)] information around but OS3.1 is recommended but limited in amount.
Brief overview of what is required to write AROS Applications
# Using [[Aros/Developer/Docs/Libraries/Intuition|Intuition]] for basic screens/windows
# Using graphics within windows via 8bit [[Aros/Developer/Docs/Libraries/Graphics|graphics]] and so onto 15-16-24bit [[Aros/Developer/Docs/Libraries/CGFX|cybergraphx]]
# Load and save work to [[Aros/Developer/Docs/Libraries/DOS|dos]] disk drives
# Using the [[Aros/Developer/Zune|ZUNE GUI Environment]]
Writing native games require this extra information
# Using [[Aros/Developer/AHIDrivers|AHI audio hardware independent API]]
# Using USB joystick/joypad with the Poseidon USB stack through [[Aros/Developer/Docs/Libraries/LowLevel|LowLevel]] library
Additional features that could be added later
# Adding additional [[Aros/Developer/Docs/Libraries/Locale|Locale]] language translations to your program
# Adding a [[Aros/Developer/Docs/Rexx|AREXX/Regina]] port to your application
# Executing Amiga(TM) [[Aros/User/DOS|DOS]] commands from your application
# Using [[Aros/Developer/Docs/Libraries/Icon|icons]] (.info files) and icon tooltypes (stack, version, and program startup options)
# Local couch or IP based SANA2 networking co-op multi player gaming support
Most AmigaOS programming books are nowadays very much out of date as most are from the late 1980s and do not cover later amigaOS releases like 3.1 for example, Rob Peck's book "Programmer's Guide to the Amiga". The Amiga ROM Kernel manuals aka RKMs like Libraries (3rd edition), Devices (), the AmigaDOS manual (3rd edition) and the Style Guide may have their uses. There are some reference examples from AmigaMail and Devcon notes (available again on an Amiga developers CD 2.1).
For Arexx then "The Amiga Programmer's Guide to ARexx" by Eric Giguere, which was published by Commodore is useful as well as an "Arexx Cookbook".
Curly brackets missing - try SHIFT + ALT + 7 or 0.
* Beginners C Guide [http://www.iu.hio.no/~mark/CTutorial/CTutorial.html C Tutorial],
* [http://thecguru.com/ C for beginners],
* [http://fresh2refresh.com/c/c-basic-program/ C programming basics] for students,
* [https://www.edx.org/courses Free Online course] from American Universities
* Reference Amiga [http://amigadev.elowar.com/ API reference].
* AROS based c source can be found [[Aros/Developer/Docs/Examples|here]] and lots of example code can be found inside [https://github.com/aros-development-team AROS sources] themselves and from the contrib section of the archives from [https://github.com/aros-development-team/contrib Aros site], and study the AROS applications source code, e.g. the test programs from the Tests drawer (folder/directory). Take a look at the code of some smaller AROS programs might be a better and more up to date guide. Some old Os3 [http://www.blackfiveservices.co.uk/amiga-c/ here]
When you upload your builds, please write the architecture (like i386-aros, x86_64-aros, etc.) in the archive name
and it is also advisable to write in the field "Requirements" what ABI (ABIv11, ABIv0 or ABIv1)
===Compiling C/C++ Code===
Native, although we have a IDE Integrated Development Environment (Murks), it does lack a debugger. Whilst others use a combination of a text editor and shell to edit code. Most though use an AROS hosted on Linux to take advantage of the better GCC tools like GDB and various IDEs.
Open shell - its a menu option at the top left of Wanderer (desktop). Or by using the right Win key and w (or F12 and w) within the directory with the source code. Type in
sh
to change the amiga shell into a unix shell. You can then type in ls (unix equivalent to amiga dir). Take a look [http://en.wikibooks.org/wiki/Linux_commands here] for more commands.
For a single file program-name.c or program-name.cpp
gcc -o program-name program-name.c
or
g++ -o program-name program-name.cpp
or
g++ -o test -Wall -g main.cc texturelib.cpp xmodelib.cc -lsdl -lgl
To close the shell, click on the top left-hand corner to close (twice). Once to get back the aros shell and then again to close finally. Use [http://freshmeat.net/projects/cksfv/ cksfv] as a test.
Some source code requires the addition of Amiga API libraries, like dos, which you can flag at the compile time as
gcc -o julia.exe julia.c -ldos
For DOS use -ldos as example and if you are compiling mui codes it will be -lmui or intuition -lintuition. Other missing symbols are due to linker libraries being necessary for linking in functions that aren't in the standard C libraries. For example some source code would need added
-lz or -lm or -lpng or -larosc etc.
use this in unix line command mode to search for 'search-item' in many .c files (*.cpp for c++, etc.)
grep -l 'search-item' *.c
If the program is not executable, try using parameter fno-common
"Delete #?.o"? Or if you are using abcshell then "rm *.o"
:''More information: [[Aros/Developer/Porting software]]''
=== How to make Apps have AROS 64-bit specific support code ===
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
AROS64 already uses 64bit addressing, it just doesn't setup the MMU for more than 4GB physical memory currently.
When porting software to AROS64 it is "mostly" a case of converting ULONG's that are used to store pointers, into IPTR's instead, etc. Another quirk, is making sure items on the stack are the correct size by using the STACKED attribute for them.
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
compiling mui stuff for aros setting -std=gnu99 is necessary, had -std=c99 usually
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order.
crash which suggest memory corruption. From my experience porting from 32-bit to 64-bit these kinds of errors can happen if a pointer is passed somewhere via ULONG variable. Then half of the pointer is cut.
To generate this error, please run AROSBootstrap with -m 1024. This will allocate heap to 64-bit address space which will make these errors immediatelly visible. These types of crashes are hard to debug. Disabled as little code as possible to stop corruption from occurring and then try to read from the code where it can be broken
Crashing in tslf_freevec is another symptom of memory corruption and these memory corruptions will manifest differently on different setups.
==Coding conventions==
As the AROS core source is a shared developer experience, there are rules regarding structure and style. When it comes to your creating your own app and coding, the structure and style should be your own, i.e. you should enjoy what you do and do it so that you can understand what is going on.
===Layout===
<syntaxhighlight lang="c">
static void 1st_function()
{
program
exit(0);
}
int main(void)
{
1st_function();
2nd_function();
3rd_function();
return 0;
}
</syntaxhighlight>
<syntaxhighlight lang="c">
struct Screen * openscreen(void);
struct Window *openwindow(struct Screen *screen, const char *title, LONG x, LONG y, LONG w, LONG h);
VOID 1st_function();
VOID 2nd_function();
int main(int argc, char **argv)
{
program
return 0;
} /* main */
VOID 1st_function()
{
}
VOID 2nd_function()
{
}
</syntaxhighlight>
===General style===
This code is used by many people and therefore you should keep some things in mind when you submit source code:
* Keep things simple
* Keep the source clean
* Always know what you are doing, if not flag it and describe what needs to be done...
* Explain clearly/simply what you are doing
* Remember that you write code once but that it is read many times by many people
===Comments===
AROS uses some of the comments in the source to generate the documentation. Therefore it's necessary to keep a certain format so the tools can find their information. Other comments are ignored but they should explain what you thought when you wrote the code. If you really can't think of an explanation, then don't write the code a second time like this:
<pre>
/* This adds 1 to t */
t ++;
</pre>
What we think of is this:
<pre>
/* Go on with next element */
t ++;
</pre>
===Formatting===
This is only '''IMPORTANT''' if you are going to work on the core AROS code or contrib but not applications which may reside outside like on AROS Archives or other websites.
<syntaxhighlight lang="c">
{
/* a */
struct RastPort * rp;
int a;
/* b */
rp = NULL;
a = 1;
/* c */
if (a == 1)
printf ("Init worked\n");
/* d */
if
(
!(rp = Get_a_pointer_to_the_RastPort
(
some
, long
, arguments
)
)
||
a <= 0
)
{
printf ("Something failed\n");
return FAIL;
}
/* e */
a = printf ("My RastPort is %p, a=%d\n"
, rp
, a
);
return OK;
}
</syntaxhighlight>
Looks ugly, eh ? :-) Ok, here are the rules:
<pre>
If several lines contain similar code, put similar things below each other (see a and b);
Put spaces between operands and operators
Put braces {}, brackets [] and parentheses () below each other (d) if there is much code between.
Brackets and parentheses may be in one line if the code between is small (c)
Indent by 4 Spaces. Two indent levels may be abbreviated by one tab.
</pre>
'''Before committing please normalize the indentation - if you have a mixture of tabs and spaced - please always use spaces, 1 tab = 4 spaces.'''
The reasons for this are:
# While some editors can use an arbitrary sizes for tabs, it's a bit complicated to tell another editor which tab size was used by the one used to write the code.
# Most code in AROS was written this way and your code should look like the rest.
# You can print this code on any printer without special tools to "fix" the tabs.
# Most editors have smart tabs which do exactly this. If your editor doesn't, write a bug report.
If you have a function with many arguments (d, e) you should put the parentheses in lines of their own and each argument in one line (d) or put the first argument behind the opening parentheses (e) and each following argument in a line of its own with the comma in front. The closing parentheses is in a line of its own and aligned with the beginning of the expression (i.e. the a and not the opening parentheses or the printf()).
Use a single blank line to separate logical blocks. Large comments should have a blank line before and after them, small comments should be put before the code they explain with only one blank line before them.
If you see any TABS in AROS core sources then the suggestion is to "detab the file and commit that separately" either before or afterwards from making functionality changes. Make two commits instead of one. This makes it easier for others to see the real changes instead of having to dig through multiple lines of irrelevant diffs.
===Eliminating Global Variables===
i.e. pass variables to functions (local scope) or classes making it easier to track and debug your code.
Any time you find that you need a particular thing in 'a lot of different places', chances are that all those places are conceptually related, and so you can create a class, a namespace, a function, or some other higher-level organizational unit to represent that relationship. This makes the program easier to understand.
Bad Designs
* All variables are global.
* There are no standalone functions, only sub-procedures which act on the global variables.
* Every sub-procedure is at least 500 lines to several thousand
* Every sub-procedure has more than one task to perform
* Copy-paste is preferred to writing methods, AND subtle changes are made in the middle of the code
Good Designs
* structure program into functions (C or basic) - top-down procedural approach
* put in class(es) (freepascal or C++) - the object is fixed and you use methods to access the object
<pre>
class String_List
{
private:
list<string> m_List; // member
public:
void read_strings() { /* read strings into m_List */ }
void print_strings() { /* write contents of m_List to stdout */ }
void sort_strings() { /* sort contents of m_List */ }
void sort_strings_reverse() { /* reverse-sort contents of m_List */ }
void unique_strings() { /* remove duplicate strings */ }
};
int main()
{
String_List myList; // local
myList.read_strings();
myList.sort_strings();
myList.print_strings();
myList.sort_strings_reverse();
myList.print_strings();
myList.unique_strings();
myList.print_strings();
return 0;
}
</pre>
This way it is very easy to replace the list with new list for debugging purposes, or replacing the methods without replacing the list, when you want different results. You only have to replace the content of the local variables.
So create the structure that matches your data (linked lists, trees, arrays, etc.) and what to do with them (sorting, searching, etc.)
<pre>
.h usually contain #define #include typedef enum struct extern screen and window definitions (data structures)
.c should contains functions and algorithms
</pre>
One way to look at it is that menu headings act as the .c file and sub-menu headings as functions.
When you start a project, you place a couple of declarations in the include file. As the project continues, you place more and more declarations in the include file, some of which refer to or contain previous declarations. Before you know it, you have a real mess on your hands. The majority of your source files have knowledge of the data structures and directly reference elements from the structures.
Making changes in an environment where many data structures directly refer to other data structures becomes, at best, a headache. Consider what happens when you change a data structure.
Use good variables names to help clarify code and only comment when you need to explain why a certain programming approach was made.
You're Refactoring Legacy Code, you see a global, you want to get rid of it. How do you do this?
Exactly what to do depends on how the global is used. The first step is to find all uses of the global throughout the code, and get a feel for what the significance of the variable is and how it relates to the rest of the program. Pay particular attention to the "lifetime" of the variable (when it gets initialized, when it is first used, when it is last used, how it gets cleaned up). Then, you will probably make the global a data member of a class (for OO languages), or you will write some get/set functions. Converting to the Singleton Pattern is common, but you may discover that it makes more sense for the data element to be a member of an existing singleton, or maybe even an instance variable.
# Create a basic read method, either as a class or a global function. Replace all reads with the access method, but leave the variable defined as a global.
# Review each of the writes to the method and extract action functions one at a time. Unless two operations are coded identically in the original code, extract each write access separately.
# Change the variable scope from global to local.
# Analyze similar action functions to determine if any can be merged, i.e., there are no functional differences in the results of the function, just differences in the implementation details.
# Review the calls to the read method and see if a more complex functionality should be applied. Follow the approach for writes and unless implementations are identical, create separate access functions.
# Analyze the access functions for duplication.
As returning variables by "passing by value" are forgotten, so "passing by reference" is often used instead. The reference is a pointer to the variable so the value is remembered when returned.
Alternatives
* Hidden Globals
* Singleton Pattern
* Database or TupleSpace
* Context Object
* Dependency Injection
* Stateful Procedures
==AROS/AmigaOS APIs and Docs==
<pre>
Library:
- Private data structure
- Many public access methods
Device:
- Private data structure
- Two (BeginIO/AbortIO) access methods
Resource:
- Public data structure
- *NO* access methods
</pre>
And, being Amiga OS-compatible, there are exceptions to all of these.
===System Libraries===
The [http://aros.sourceforge.net/documentation/developers/app-dev/index.php AROS Guide To Libraries] can be used as a guide to individual commands and Old Dev Docs are used in application programming.
The generated [http://aros.sourceforge.net/documentation/developers/autodocs/ Aros AutoDocs HTML Read] or download [http://aros.sourceforge.net/download.php docs-html.bz2 from here].
Amiga/Aros styles libraries are very different from windows and linux libs. Typical .so/dll libraries are foreign to most Amiga-like OS
*[[Aros/Developer/Docs/Libraries/AROSC|arosc.library]]
*[[Aros/Developer/Docs/Libraries/AmigaGuide|amigaguide.library]]
*[[Aros/Developer/Docs/Libraries/ASL|asl.library]]
*[[Aros/Developer/Docs/Libraries/Bullet|bullet.library]]
*[[Aros/Developer/Docs/Libraries/BSDsocket|bsdsocket.library]]
*[[Aros/Developer/Docs/Libraries/CAMD|camd.library]]
*[[Aros/Developer/Docs/Libraries/Codesets|codesets.library]]
*[[Aros/Developer/Docs/Libraries/CGFX|cybergraphics.library]]
*[[Aros/Developer/Docs/Libraries/CGXVIDEO|cgxvideo.library]]
*[[Aros/Developer/Docs/Libraries/Commodities|commodities.library]]
*[[Aros/Developer/Docs/Libraries/DataTypes|datatypes.library]]
*[[Aros/Developer/Docs/Libraries/DiskFont|diskfont.library]]
*[[Aros/Developer/Docs/Libraries/DOS|dos.library]]
*[[Aros/Developer/Docs/Libraries/Exec|exec.library]]
*[[Aros/Developer/Docs/Libraries/Expansion|expansion.library]]
*[[Aros/Developer/Docs/Libraries/FreeType2|freetype.library]]
*[[Aros/Developer/Docs/Libraries/GadTools|gadtools.library]]
*[[Aros/Developer/Docs/Libraries/Graphics|graphics.library]]
*[[Aros/Developer/Docs/Libraries/Icon|icon.library]]
*[[Aros/Developer/Docs/Libraries/Identify|identify.library]]
*[[Aros/Developer/Docs/Libraries/IFFParse|iffparse.library]]
*[[Aros/Developer/Docs/Libraries/Intuition|intuition.library]]
*[[Aros/Developer/Docs/Libraries/Keymap|keymap.library]]
*[[Aros/Developer/Docs/Libraries/Layers|layers.library]]
*[[Aros/Developer/Docs/Libraries/Locale|locale.library]]
*[[Aros/Developer/Docs/Libraries/LowLevel|lowlevel.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingBas|mathieeesingbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubBas|mathieeedoubbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingTrans|mathieeesingtrans.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubTrans|mathieeedoubtrans.library]]
*[[Aros/Developer/Docs/Libraries/Mathtrans|mathtrans.library]]
*[[Aros/Developer/Docs/Libraries/MUIMaster|muimaster.library]]
*[[Aros/Developer/Docs/Libraries/Partition|partition.library]]
*[[Aros/Developer/Docs/Libraries/PopUpMenu|popupmenu.library]]
*[[Aros/Developer/Docs/Libraries/OOP|oop.library]]
*[[Aros/Developer/Docs/Libraries/Regina|regina.library]]
*[[Aros/Developer/Docs/Libraries/Reqtools|reqtools.library]]
*[[Aros/Developer/Docs/Libraries/RexxSysLib|rexxsyslib.library]]
*[[Aros/Developer/Docs/Libraries/ScreenNotify|screennotify.library]]
*[[Aros/Developer/Docs/Libraries/TTEngine|ttengine.library]]
*[[Aros/Developer/Docs/Libraries/Thread|thread.library]]
*[[Aros/Developer/Docs/Libraries/Utility|utility.library]]
*[[Aros/Developer/Docs/Libraries/Xadmaster|xadmaster.library]]
*[[Aros/Developer/Docs/Libraries/Workbench|workbench.library]]
*[https://github.com/aros-development-team/AROS/commit/c82e86b8480277998014cc327b56c7664023a52f ClassAct Reaction boopsi class]
===AROS Subsystems===
# [[Aros/Developer/Zune|Zune MUI compatible GUI]]
# [[Aros/Developer/AROSAppPackages|AROS Application Packages]]
# AHI Audio Drivers - [[Aros/Developer/AHIDrivers|Usage]]/[[Aros/Developer/AHIDriversDev|Development]]
# AROSTCP Sana2 Network Interface Drivers - [[Aros/Developer/NICDrivers|Usage]]/[[Aros/Developer/NICDriversDev|Development]]
# [[Aros/Developer/AmiSSL|AmiSSL]]
# gfx.hidd/cybergraphics Video Drivers - [[Aros/Developer/GfxDrivers|Usage]]/[[Aros/Developer/GfxDriversDev|Development]]
# IO Device Drivers - [[Aros/Developer/IODeviceDrivers|Usage]]/[[Aros/Developer/IODeviceDriversDev|Development]]
# USB Device Drivers - [[Aros/Developer/USBDrivers|Usage]]/[[Aros/Developer/USBDriversDev|Development]]
# PCI Device Drivers - [[Aros/Developer/PCIDrivers|Usage]]/[[Aros/Developer/PCIDriversDev|Development]]
# [http://www.libsdl.org/ SDL]
# [[w:Gallium3D|Gallium 3D]] [http://www.mesa3d.org/ openGL aka Mesa] - [[Aros/Developer/OpenGL|Usage]]/[[Aros/Developer/OpenGLDev|Development]] [http://www.swiftless.com/opengltuts.html Swfitless]
# A small subset of GTK2 through [http://sourceforge.net/projects/gtk-mui/ MUI-GTK]
# Cairo 2D Engine - [[Aros/Developer/Cairo|Usage]]/[[Aros/Developer/Cairo|Development]]
# [[Aros/Developer/Scalos|Scalos desktop API and plugin modules]]
# [[Aros/Developer/VHI|VHI video driver]]
====HIDDs====
*[[Aros/Developer/Docs/HIDD/HIDDClass|hiddclass.hidd]]
*[[Aros/Developer/Docs/HIDD/Graphics|graphics.hidd]]
*[[Aros/Developer/Docs/HIDD/VesaGfx|vesagfx.hidd]]
*[[Aros/Developer/Docs/HIDD/ATI|radeon.hidd]]
*[[Aros/Developer/Docs/HIDD/NVidia|nvidia.hidd]]
*[[Aros/Developer/Docs/HIDD/Nouveau|nouveau.hidd]]
*[[Aros/Developer/Docs/HIDD/Kbd|kbd.hidd]]
*[[Aros/Developer/Docs/HIDD/Mouse|mouse.hidd]]
*[[Aros/Developer/Docs/HIDD/i2c|i2c.hidd]]
*[[Aros/Developer/Docs/HIDD/IRQ|irq.hidd (deprecated)]]
*[[Aros/Developer/Docs/HIDD/PCI|pci.hidd]]
*[[Aros/Developer/Docs/HIDD/PCIPC|pcipc.hidd]]
*[[Aros/Developer/Docs/HIDD/Serial|serial.hidd]]
*[[Aros/Developer/Docs/HIDD/Thunderbolt|thunderbolt.hidd]]
https://github.com/aros-development-team/AROS/commit/4f02ea691799aff3a01f60cfa5f9182c82fc57a8
HIDD are used for device/peripheral low level hardware support drivers. The HIDD system is split up into a collection of classes with a strict inheritance hierarchy. A HIDD class implements a device driver for a single device or in rare cases a group of devices and provides an interface for other programs and devices to access.
In order to maintain portability of interfaces across a wide range of hardware this interface will in general not present the raw interface to the underlying hardware. Instead it will present a generic interface that describes many different hardware implementations. This allows for the best reuse of both interfaces and code.
HIDD API is heavyweight though. You need to open a HIDD library, open oop.library, instantiate an object (even if there's no object); and object calls are more costly compared to plain library calls.
Basically your task is to implement a subclass of hidd.ata.bus for your hardware. just implementing the XXXATA__Hidd_ATABus__xxxxxx methods for the Amiga chipset - and appropriate versions of the interface_xxx.c file(s). pretty much everything in probe.c could be ignored - just write a replacement scan for relevant amiga devices and store whatever info you need in the bus data? only the "SUPPORT_LEGACY" blocks might be related.
You do not need to depend on PCI API. PCI is just a way to discover the hardware on PCs, etc.
<hidd/pci.h> includes (at some depth) <interface/HW.h>, which defines IID_HW. This comes from the 'generic' HIDD class in:
rom/hidds/hidd/hiddclass.conf
did not split up HIDD and HW because they are always used in pair. It's the same as hidd/pci.h bringing definition for: PCI, PCIDriver and PCIDevice. PCI is actually PCIHW, just the name was not changed for backwards compatibility reasons. HW is a 'hub' where HIDD instances plug in.
ATA HIDD aoHidd_ATABus_Use32Bit value is completely ignored unless ata.device first detects correct command line parameter.
Yes. Unfortunately I was unable to find any comment in code or svn history with explanations. Looked at Linux source, there 32-bit PIO is also controller driver's property. Some of them enable it, some don't.
Actually, switching the default to ON should be safe. ata.device is fail-safe at this because during IDENTIFY command it validates upper 16 bits, and if they appear to be zeroes in all 128 longwords, then 32-bit mode is switched off. But, nevertheless, I know how tricky hardware can be, so I decided not to change original behavior. If you think it's wrong in some cases, then it's possible to add one more attribute like aHidd_ATABus_Default32Bit. If set to YES, then this means that 32-bit PIO is safe to use by default.
====Devices====
*[[Aros/Developer/Docs/Devices/ATA|ata.device]]
*[[Aros/Developer/Docs/Devices/Console|console.device]]
*[[Aros/Developer/Docs/Devices/Narrator|narrator.device]]
*[[Aros/Developer/Docs/Devices/Printer|printer.device]]
*[[Aros/Developer/Docs/Devices/Trackdisk|trackdisk.device]]
*[[Aros/Developer/Docs/Devices/AmberRAM|amberram.device]]
*[[Aros/Developer/Docs/Devices/Timer|timer.device]]
*[[Aros/Developer/Docs/Devices/|.device]]
The Amiga used [[Aros/Developer/Docs/Devices|Devices]] to communicate with [http://aros-exec.org/modules/newbb/viewtopic.php?start=0&topic_id=3475&viewmode=flat&order=ASC additional hardware]. AROS has replaced these hardware devices with hidd equivalents but some are still retained for backwards compatibility.
Local libraries/devices/handlers,etc. are supposed to override the ones in ROM if their version is higher than the one in ROM.
Here is the list of commands exec default:
{| class="wikitable"
| CMD_CLEAR
| Purge the buffer of the device
|----
| CMD_READ
| Playback Control
|----
| CMD_STOP
| Stopped the activity of the device
|----
| CMD_FLUSH
| Empty the queue of commands
|----
| CMD_RESET
| Reset a device
|----
| CMD_WRITE
| Playback Control
|----
| CMD_INVALID
| Create an error
|----
| CMD_UPDATE
| Gets updated device
|----
| CMD_START
| Will restart the device
|----
|}
While most other "stuff you communicate with" in AmigaOS are devices <ref>AMIGA ROM Kernel Reference Manual: Devices, 3rd Edition. Commodore-Amiga, Inc. Addison-Wesley, 1991. {{ISBN|0-201-56775-X}}</ref> that share a [http://gega.homelinux.net/AmigaDevDocs/ common base interface]. [[Aros/Developer/Docs/Devices1.3|OS 1.3 Device Drivers]].
====Handlers====
:[[Aros/Developer/Docs/Handlers/Pipe|pipe.handler]]
:[[Aros/Developer/Docs/Handlers/Port|port.handler]]
:[[Aros/Developer/Docs/Handlers/SFS|sfs.handler]]
:[[Aros/Developer/Docs/Handlers/FAT|fat.handler]]
:[[Aros/Developer/Docs/Handlers/PFS|pfs.handler]]
:[[Aros/Developer/Docs/Handlers/NTFS|fuse.handler]]
:[[Aros/Developer/Docs/Handlers/FFS|ffs.handler]]
filesystem handlers have their own separate system consisting of completely differently structured messages that dos.library use to pass requests (for things like reading, writing, getting directory contents etc.) to them. AROS originally went with implementing filesystem handlers as devices, which might arguably be more consistent with the rest of the AmigaOS API but which is quite incompatible with AmigaOS itself. However, it made it far harder to port filesystems and the gains were comparatively small, and so there's been a long standing goal of fixing this incompatibility. It has now, June 2011, been reintroduced to all AROS flavors.
are argstr and argsize valid for the handler startup environment?
DOS/RunHandler() calls DOS/CreateNewProcTags(), and then CallEntry() (in rom/dos/exit.c) to start the handler, so yes, argstr and argsize are *present* in the call signature of the handler.
Granted, argstr will be NULL and argsize 0, but those values *are* passed to the handler function using:
<pre>
AROS_UFC3(ULONG, entry,
AROS_UFCA(STRPTR, argptr, A0),
AROS_UFCA(ULONG, argsize, D0),
AROS_UFCA(struct ExecBase *, SysBase, A6));
</pre>
Creating your own [without the whole build tree http://pagesperso-orange.fr/franck.charlet/temp/radeon.zip] and then
<pre>
make stub
make
make install
</pre>
SFS has two Root blocks, one at the start and one at the end of the disk. The Root blocks both contain the same information. They hold various information about the disk structure and have the locations of some important blocks used by the filesystem.
The Root ObjectContainer contains the Root directory Object. The name of this Object is the name of the volume. It is identical to a normal directory Object.
The Bitmap is used to keep track of free space. Each bit in a bitmap represents a single block. A set bit indicates a free block and a cleared bit a used block.
AdminSpaceContainers are used to keep track of space which has been reserved for storing administration blocks. Only the Bitmap, the Root blocks and the actual data stored in files aren't stored in administration space. Administration space is allocated in chunks of 32 blocks at a time. A single AdminSpaceContainer can hold information about a large number of such areas each of which has its own little bitmap of 32 bits.
Extents are stored in a B-Tree. The Root block holds a pointer to the root of the Extent B-Tree. Extents keep track of space in use by a specific file. Each fragment a file consists of has its own Extent. Extents are in a double linked list. The list can be used to locate the next or previous fragment of a file.
Below is the standard block header. This header is found before EVERY type of block used in the filesystem, except data blocks. The id field is used to check if the block is of the correct type when it is being referred to using a BLCK pointer. The checksum field is the SUM of all LONGs in a block plus one, and then negated. When applying a checksum the checksum field itself should be set to zero. The checking a checksum the checksum is okay if the result of the checksum equals zero. The ownblock BLCK pointer points to the block itself. This field is an extra safety check to ensure we are using a valid block.
Field Type Description
id ULONG The id field is used to identify the type of block we are dealing with. It is used to make sure that when referencing a block we got a block of the correct type. The id consist of 4 bytes and each blocktype has its own unique foure letter code.
checksum ULONG This field contains the sum of all longs in this block, plus one and then negated. The checksum can be used to check if the block hasn't been corrupted in any way.
ownblock BLCK Points to itself, or in other words, this field contains the block number of this block. This is yet another way to check whether or not a block is valid.
<pre>
struct fsBlockHeader {
ULONG id;
ULONG checksum;
BLCK ownblock;
};
</pre>
The algorithm to calculate the checksum of a block:
<pre>
ULONG calcchecksum(struct fsBlockHeader *block, LONG blocksize} {
ULONG *data=(ULONG *)block;
ULONG checksum=1;
block->checksum=0;
while(blocksize>0) {
checksum+=*data++;
blocksize-=4;
}
return(-checksum);
}
</pre>
A Root block contains very important information about the structure of a SFS disk. It has information on the location and size of the disk, the blocksize used, locations of various important blocks, version information and some filesystem specific settings.
A SFS disk has two Root blocks; one located at the start of the partition and one at the end. On startup the filesystem will check both Roots to see if it is a valid SFS disk. If either one is missing SFS can still continue (although at the moment it won't).
A Root block could be missing on purpose. For example, if you extend the partition at the end (adding a few MB's) then SFS can detect this with the information stored in the Root block located at the beginning (since only the end-offset has changed). Same goes for the other way around, as long as you don't change start and end point at the same time.
When a Root block is missing because the partition has been made a bit larger, then SFS will in the future be able to resize itself without re-formatting the disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
version UWORD The version of the filesystem block structure. You can check this field to identify what version of the filesystem your dealing with it and to see if you can handle this structure correctly. Don't try to interpret the disk's structure when this field contains an unknown version number!
sequencenumber UWORD Used to identify which Root block was written last in case the sequencenumber on both Root blocks don't match.
datecreated ULONG Creation date of this volume. This is the date when the disk was last formatted and will never be changed.
bits UBYTE Various settings, see below.
<pre>
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
reserved1 ULONG[2] Reserved, leave zero.
firstbyteh ULONG High 32-bits of a 64-bit number. This is the first byte of our partition relative to the start of the disk.
firstbyte ULONG Low 32-bits of a 64-bit number.
lastbyteh ULONG High 32-bits of a 64-bit number. This is the last byte (exclusive) of our partition relative to the start of the disk.
lastbyte ULONG Low 32-bits of a 64-bit number.
totalblocks ULONG The total number of blocks this partition consists of.
blocksize ULONG The size of a block of this partition.
reserved2 ULONG[2] Reserved, leave zero.
reserved3 ULONG[8] Reserved, leave zero.
bitmapbase BLCK Block number of the start of the Bitmap.
adminspacecontainer BLCK Block number of the first AdminSpaceContainer.
rootobjectcontainer BLCK Block number of the ObjectContainer which contains the root of the disk (this is where the volume name is stored).
extentbnoderoot BLCK Block number of the root of the Extent B-Tree.
reserved4 ULONG[4] Reserved, leave zero.
</pre>
<pre>
struct fsRootBlock {
struct fsBlockHeader bheader;
UWORD version;
UWORD sequencenumber;
ULONG datecreated;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
ULONG reserved1[2];
ULONG firstbyteh;
ULONG firstbyte;
ULONG lastbyteh;
ULONG lastbyte;
BLCK totalblocks;
ULONG blocksize;
ULONG reserved2[2];
ULONG reserved3[8];
BLCK bitmapbase;
BLCK adminspacecontainer;
BLCK rootobjectcontainer;
BLCK extentbnoderoot;
ULONG reserved4[4];
};
</pre>
AdminSpaceContainers are used to store the location and bitmap of each administration space. The AdminSpaceContainers are located in a double linked list and they contain an array of fsAdminSpace structures. There is one fsAdminSpace structure for every administration space on disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
next BLCK The next AdminSpaceContainer, or zero if it is the last in the chain.
previous BLCK The previous AdminSpaceContainer, or zero if it is the first AdminSpaceContainer.
bits UBYTE The number of bits in each in the bits ULONG in the fsAdminSpace structure.
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
adminspace struct fsAdminSpace An array of fsAdminSpace structures. The size of the array is determined by the current blocksize.
<pre>
struct fsAdminSpaceContainer {
struct fsBlockHeader bheader;
BLCK next;
BLCK previous;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
struct fsAdminSpace adminspace[0];
};
</pre>
Field Type Description
space BLCK The first block of an administration space.
bits ULONG A small bitmap which is used to determine which blocks in an administration space are already in use. The number of bits in this bitmap is determined by the bits field in the AdminSpaceContainer.
<pre>
struct fsAdminSpace {
BLCK space;
ULONG bits;
};
</pre>
The fsBitmap structure is used for Bitmap blocks. A bitmap block is used to keep track of which space is in use and which isn't for a particular area of a disk. All bitmap blocks together keep track of the free space for an entire disk. The location of the first bitmap block is known and all other bitmap blocks are stored in order after the first one.
Field Type Description
bheader struct fsBlockHeader Standard block header.
bitmap ULONG An array of ULONG's. These hold the actual information on which blocks are in use and which aren't.
<pre>
struct fsBitmap {
struct fsBlockHeader bheader;
ULONG bitmap[0];
};
</pre>
Each bit in a bitmap block (except for the block header) represents a single block. If the bit is set than the block is free, and if the bit is clear then it is full. The first ULONG in the bitmap area of the first bitmap block represents blocks 0 through 31 on the disk. Bit 31 of this ULONG is block 0, 30 is block 1, and so on. Bit 0 of the first ULONG represents block 31.
Below is a table to clarify how bitmaps work even further. The first column is the bitmap block number, the second column is the number of the ULONG in the bitmap array. The third column is the bit number in this ULONG, and the last column is the block which this specific bit, in this specific bitmap block represents.
We'll assume here that a bitmap block has room for 120 ULONG's (meaning there is room for storing 32 * 120 bits).
<pre>
Bitmap block ULONG number Bit number Block represented
1 (first) 0 31 0
1 0 30 1
... ... ... ...
1 0 1 30
1 0 0 31
1 1 31 32
... ... ... ...
1 2 31 64
1 2 30 65
... ... ... ...
1 119 0 3839
2 0 31 3840
2 0 30 3841
... ... ... ...
</pre>
The last bitmap block doesn't need to be completely used. The unused bits (which belong to blocks which do not exist) all have to be clear, to indicate that these blocks are in use.
The fsObjectContainer structure is used to hold a variable number of fsObjects structures (Objects) which have the same parent directory. Each ObjectContainer must contain at least one Object. If there is space in the ObjectContainer not used by the variable number of Objects then that space is zero filled. Objects always start at 2-byte boundaries, which means sometimes a padding byte is inserted between two Objects.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the parent Object, or 0 if this object has no parent (which is only the case for the Root directory).
next BLCK The next ObjectContainer belonging to this directory, or zero if it is the last in the chain.
previous BLCK The previous ObjectContainer belonging to this directory, or zero if it is the first ObjectContainer in this directory.
object struct fsObject A variable number of fsObject structures. The number of structures depends on the individual sizes of each fsObject structure and the blocksize. These structures are located directly after each other with at most 1 byte of padding between them to get the structures aligned on a 2 byte boundary.
<pre>
struct fsObjectContainer {
struct fsBlockHeader bheader;
NODE parent;
BLCK next;
BLCK previous;
struct fsObject object[0];
};
</pre>
fsHashTable is the structure of a HashTable block. It functions much like the hash table found in FFS user directory blocks, except that it is stored in a separate block. This block contains a number of hash-chains (about 120 for a 512 byte block). Each hash-chain is a chain of Nodes. Each Node has a pointer to an Object and a pointer to the next entry in the hash-chain. Using such a hash-chain you can locate an object quickly by only knowing its name.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the directory Object this HashTable block belongs to.
hashentry NODE An array of Nodes. Each Node represents the start of a hash-chain (singly linked). A hash-value is calculated using the name of a file or directory, and this value determines in which chain the Object is linked. If there are no entries in a hash-chain then the hashentry value is zero.
<pre>
struct fsHashTable {
struct fsBlockHeader bheader;
NODE parent;
NODE hashentry[0];
};
</pre>
To calculate the hash-value using a name of an Object as input use these routines:
<pre>
UWORD calchash(UBYTE *name) {
UWORD hash=0;
/* Calculates a hash value over the passed in string.
The end of the string can be either a NUL byte or a
slash. The hash function is the same as the one
used in FastFileSystem set to international mode. */
while(name[hash]!=0 && name[hash]!='/') {
hash++;
}
while(*name!=0 && *name!='/') {
hash=hash*13+upperchar(*name++);
}
return((UWORD)(hash % (UWORD)((blocksize-sizeof(struct fsHashTable))>>2)));
}
UBYTE upperchar(UBYTE c) {
if((c>=224 && c<=254 && c!=247) || (c>='a' && c<='z')) {
c-=32;
}
return(c);
}
</pre>
The BNodeContainer is used to store B-Trees. Currently only one B-Tree is in use by this filesystem and it is used to store the location of file data. The fsBNodeContainer structure contains two other structures. The fsBlockHeader structure and the BTreeContainer structure.
Field Type Description
bheader struct fsBlockHeader Standard block header.
btc struct BTreeContainer Contains information about the B-Tree and its nodes contained in this block.
<pre>
struct fsBNodeContainer {
struct fsBlockHeader bheader;
struct BTreeContainer btc;
};
</pre>
First try and locate the Root block. It should start with "ROOT". SFS has two of these, one at the start of the partition and one at the end. One of the fields contains the block size, which will be the size of all important SFS blocks.
The root block has the root object container, which contains information about files and directories in the root directory. The object
containers basically hold one or more smaller structures that represent files and directories. Scanning them all should give you a list of
files and directories.
The root block also has the root of the Extent B-Tree. This is a standard B-Tree structure (not a binary tree) that is used commonly in
all kinds of system, you can read about how they work on Wikipedia if needed. The B-Tree holds the information about *where* all the data is
located for your files.
To recover your files, I'd do this:
* Find one of the root blocks, if not present, then figure out the block size your disk was using, and scan every block in turn to see if it
looks like an ObjectContainer (check the fsBlockHeader's ID, check if the ownblock number is equal to the block you are currently scanning,
and check its checksum). So if you currently have block 12, and you see a block with the correct id, and ownblock = 12 and its checksum is good,
then that's probably a valid ObjectContainer.
* With all the ObjectContainers found, you can extract filenames and directory names from these, but also the number of their first data
block (in the field data) and the file size. For small files (less than blocksize) this data block will be enough to recover the data.
For larger files, you might be lucky and all the remaining blocks are found after the first one (if the file was defragmented). You can't be
sure of that though so...
* For larger files, you need to find all the BNodeContainers. You could scan these in the same way you found all the ObjectContainers (look for
blocks with the correct id, ownblock number and checksum).
* With all the BNodeContainers found, you can try looking up the first data block of a file in the B-Tree structure. This is a bit complicated
-- the B-Tree consists of non-leaf nodes (blocks that only contain pointers to other B-Tree blocks), the isLeaf flag indicates this. Or it
can be a B-Tree leaf block. The leaf blocks contain extra information per entry (see https://hjohn.home.xs4all.nl/SFS/extents.htm)
<pre>
struct fsExtentBNode {
ULONG key;
ULONG next;
ULONG prev;
UWORD blocks;
};
</pre>
The key should be a block of a file (the first of a range), that is 1 to 65535 block long (depending the "blocks" field). If the file is split
up into more parts, then "next" will contain block number of the next range of blocks. You need to look this up again in the B-Tree
structure to find out how large it is.
You can for the most part ignore the other structures (bitmap, admin containers). The fsObjects and B-tree containers is what you'll need to
recover the data.
====Resources====
<pre>
rom/storage/mmakefile.src
rom/storage/storage.conf
rom/storage/storage_device.c
rom/storage/storage_ids.c
rom/storage/storage_init.c
rom/storage/storage_intern.h
rom/storage/storage_mount.c
rom/storage/storage_unit.c
</pre>
<pre>
rom/storage/includes/device.h
rom/storage/includes/unit.h
rom/storage/includes/volume.h
rom/storage/storage_intern.h
</pre>
<pre>
</pre>
*[[Aros/Developer/Docs/Resources/ACPI|acpi.resource]]
*[[Aros/Developer/Docs/Resources/Battclock|battclock.resource]]
*[[Aros/Developer/Docs/Resources/Bootloader|bootloader.resource]]
*[[Aros/Developer/Docs/Resources/Cia|cia.resource]]
*[[Aros/Developer/Docs/Resources/Filesystem|FileSystem.resource]]
*[[Aros/Developer/Docs/Resources/Hostlib|hostlib.resource]]
*[[Aros/Developer/Docs/Resources/Kernel|kernel.resource]]
*[[Aros/Developer/Docs/Resources/Misc|misc.resource]]
*[[Aros/Developer/Docs/Resources/Processor|processor.resource]]
==Debugging Code==
Please use the [http://sourceforge.net/tracker/?group_id=43586&atid=439463 AROS Bug Tracker] if any issues are found.
GRUB Command line list
<pre>
sysdebug
usbdebug - allows to see Poseidon's log in debug output
</pre>
How do I get debugging out of InitResident ? If running i386 hosted on linux sysdebug=initresident on command line.
This way you can enable any of listed flags. sysdebug=all stands for "everything"
Have an executable (crosscompiled C++ code) which has 6 MB size on disk, but after loading it in memory, 250 MB RAM is taken. Any software that would split AROS executable into ELF part which would show actual size values?
readelf -S executable
it will show you all sections in elf file, including sizes and requested alignment.
objdump -h filename
That's will give you a quick overview of the sections and sizes. Ignore all the .debug.* sections.
Would hazard a guess that you have a large .bss section. That's pretty common in C++.
Next step:
nm—size-sort filename | grep ' [bB] '
The last few will be your biggest consumers. Would suggest -C to demangle the symbols... ;)
Suggest profiling the program (just use some printf's in the main loop for time spent in each part), it usually is quite easy to spot slow parts in games or apps.
If someone has '#define IPTR ULONG' somewhere. To see where that define is, redefine IPTR in the source code that fails, just above the line that fails, and the preprocessor will tell you where it was defined first.
===How to setup gdb with AROS/hosted===
Download AROS sources (AROS-xxxxxxxx-source.tar.bz2, where xxxxxxxx is the current date) and AROS contrib sources (AROS-xxxxxxxx-contrib-source) from
Untar-bzip2 and cd to the unpacked archive directory.
> tar -xvjf AROS-xxxxxxxx-source.tar.bz2
> cd AROS-xxxxxxxx-source
Check the link to "contrib" (contrib-source) inside directory, e.g. correct like this:
> rm contrib
> ln -s ../AROS-xxxxxxxx-contrib-source.tar.bz2 contrib
Make sure you have the correct locale setting, otherwise compilation will fail at some point. See [http://aros.sourceforge.net/documentation/developers/compiling.php#setting-the-locale-to-iso8859 here] (or link below) for more on that. You might have to enter this:
> export LANG="en_US.ISO-8859-1"
Now configure for a debug build - see "./configure --help" for more - here are two examples:
> ./configure—enable-debug=stack,modules,symbols
> ./configure—enable-debug=all
You may "make" now, or choose a separate directory for your build (e.g. for easy removal), for example if compiling for i386 architecture you could create a directory like this:
> mkdir linux-i386
> cd linux-i386
> ../AROS/configure—enable-debug=stack,symbols,modules
When done configuring you're ready to go:
> make
Building AROS takes some time - minutes on fast machines (e.g. 2.5 GHz quadcore), up to hours on slower machines.
The result will be AROS Linux hosted with gdb debugging enabled.
See aros.org documentation for more on compiling AROS, including more [http://aros.sourceforge.net/documentation/developers/compiling.php --enable-debug] options.
When finished, enter bin/linux-i386/AROS directory (replace "linux-i386" with your compilation target platform, e.g. linux-x86_64, etc.) inside the unpacked archive directory. This directory contains the required .gdbinit file for properly running AROS inside gdb.
> cd bin/linux-i386/AROS
Run AROS (here: with 128MB of memory) from gdb:
> gdb—args boot/aros-unix -m 128
or
> gdb—args boot/arosboot -m 128
(gdb) r
Watch the shell output - in case AROS complains about "LoadKeyCode2RawKeyTable: Loading "DEVS:Keymaps/X11/keycode2rawkey.table" failed!" you should also see some instructions on how to create a keymap table. (see link above "more on compiling", too.)
Quit gdb, and try default keymap table:
(gdb) q
The program is running. Quit anyway (and kill it)? (y or n) y
> cd ../../..
> make default-x11keymaptable
Re-run AROS, as described above. Try e.g. RAros (= right windows key) + W to open a shell. If this doesn't work you have to create a keymap table yourself, quit gdb again, and make a new keytable:
> make change-x11keymaptable
A window will open. Watch the window's title bar, and follow the instructions.
When done, re-run AROS. RAros + W should now open a shell.
Next, compile your program with gdb support.
When you start GDB is there a warning which says
warning: File "<whatever>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to ...
If so start gdb with "-ix .gdbinit"
<pre>
Summary - In short:
* build AROS with debugging support (i.e. ./configure --enable-debug=all)
* build your application with debugging support (i.e. option -g)
* run AROS in the GNU debugger (you may use the GUI frontend "ddd" which simplifies usage a bit)
* start your application
* use the commands "findaddr" and "add-symbol-file" as written in the debugging manual
* if the debugger doesn't find the source code of your application use the "dir" command of the debugger.
</pre>
===How to use gdb===
In AROS open a shell, then (in host shell) use CTRL-Z to go into gdb. Use "b Exec_CreatePool" (one of the functions used early on by startup code in programs) to add a breakpoint, then "cont" and gdb will interrupt somewhere early during startup of "program". Use "bt" to show backtrace and "loadseg" for "??" entries. One of them will be for "program". After that you can use "disassemble program".
One thing you need to make sure is that .gdbinit you have in your build directory is the same as in source tree. It has been modified some time ago, but the build system does not refresh it - you need to copy it manually
To recap, please read our debugging [http://aros.sourceforge.net/documentation/developers/debugging.php manual]:
To detect segfaulting when loading, try...
./configure—enable-debug—with-optimization="-O2"
Because crash or no crash may depend on optimization. For newer compilers maybe this helps...
--with-optimization=-"-O2 -fno-strict-aliasing"
One way to make crashes less random (more easily reproducible) is to activate the munging of free memory in rom/exec/freemem.c which is normally commented out:
<pre>
Index: freemem.c
===================================================================
--- freemem.c (revision 34289)
+++ freemem.c (working copy)
@@ -154,11 +154,12 @@
* created with their TCB placed in the tc_MemEntry list. The workaround
* is to avoid munging when FreeMem() is called with task switching disabled.
*/
+
/* DOH! it doesn't work even this way. What's wrong???
- *
- * if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
- * MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
*/
+
+ if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
+ MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
}
</pre>
Mungwall can be turned on at runtime. Currently this works in all hosted versions. Just specify "mungwall" on kernel command line and it works. It can work on native too. In order to enable it you need to parse kernel command line, and if "mungwall" is present, set EXECF_MungWall bit in IntExecBase.IntFlags.
This needs to be done before the first AllocMem() for obvious reasons. And never reset back this flag! If you change it on a working system, you are doomed.
Hosted ports do the processing in rom/exec/prepareexecbase.c --enable-debug=mungwall option in configure still works but is going obsolete. A kludge in rom/exec/allocmem.c is responsible for this and it needs to be removed when the transition is done.
BTW, on i386-pc port it can be activated by "mungwall" argument on command line, you don't need to rebuild AROS.
New mungwall affects not only AllocMem()/FreeMem(), but also pools. I also tested it with AllocAbs(), seems to work correctly.
Runtime mungwall works on:
* pc-i386
* pc-x86_64
* linux-i386
* linux-x86_64
* darwin-x86
* linux-ppc
Works on all hosted ports, if the port itself is working.
* amiga-m68k
* Not on sam440-ppc and efika-chrp-ppc, even if they would be able to be built at moment. Does not work on (for now, need NVRAM support)
When starting my freshly rebuilt i386-linux-aros which was compiled with full debugging support I get sometimes the error "Program exited with code 0377". Add the following to your .gdbinit:
set follow-fork-mode child
Here are some of the custom AROS gdb functions (defined in ".gdbinit" file) to resolve "in ?? ()" entries in backtrace:
<pre>
#0 0xb7ffd424 in __kernel_vsyscall ()
#1 0xb7e2a657 in sigsuspend () from /lib/libc.so.6
#2 0xb7c63900 in ?? ()
#3 0xb7c640e3 in ?? ()
#4 0xb7c641e0 in ?? ()
</pre>
You can use
loadseg 0xb7c63900
loadframe 2
or
loadbt
and some others. Use "help " for a little help text. If the commands do not work try "loadkick" first.
Use "thistask", "taskready", "taskwait" to get list of AROS tasks. "bttask " shows backtrace of a task which is in ready or in wait queue and "loadseg" to resolve "??" entries in it's backtrace ("loadframe" would not work as it assume current running task).
===Native debugging tools for AROS===
to enable debugging at boot time entering the GRUB menu editing line (E key) and adding "debug=memory" to your boot line, then press Ctrl+X to complete booting.
SYS:Tools/Debug/'''Bifteck'''
Open a shell and enter the line below to run Biftek and grab the debug messages collected in RAM into a text file.
tools/debug/bifteck > ram:debug.txt
and certainly does not open a window. It is a shell tool and only dumps data located from the debug location.
It is therefore important to 'catch' that debug data as soon as possible (before it gets overridden). You should invoke bifteck at the first opportunity before doing anything else. You can use the TO option to store bifteck output to a file or you can pipe it manually to a file.
SYS:Tools/Debug/'''Sashimi''' - displays error messages
One suggestion is to do a bug() debugging. Each time bug() is executed it will be output on sashimi.
You include <aros/debug.h> and place bug("something\n"); in your source code at location though which control passes.
To get the output - open an aros shell
SYS:Tools/Debug/sashimi > RAM:out.txt
'''Ctrl C''' to end the output to the RAM Disk.
# open shell, and type
# ram: (to switch to ram drive)
# System:Tools/Debug/Sashimi > mylogfile.txt
# open AHI prefs using wanderer (or use another opened shell)
# play test sound
# close AHI prefs
# shell still open with Sashimi running: press ctrl-c to break Sashimi and return to prompt.
# in shell: copy mylogfile.txt System: (or to your required location)
SYS:Utilities/'''Snoopy''' - monitors OS function calls, run "Sashimi" to see Snoopy's output
SYS:Tools/'''WiMP''' - the Window (and Screens) Manipulation Program
You can use the -E option of gcc to find out how preprocessor macros are expanded.
===Errors===
crash in strcasecmp usually means that one of its arguments is NULL.
empty space between these two names, prossibly some invisible character
Old Amiga [http://www.amigacoding.com/index.php?title=Guru_codes&redirect=no Guru Codes]
If the crash is in intuition. Sometimes, if it relates to text, a null pointer sets it off.
an uninitialised pointer can have any address (this is a common fault).
Compiling on 64bit, Many old code would not properly typecast when doing pointer-integer conversions and thus at least throw a warning. This can easily be located and fixed.
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
* Fix (change IPTR/SIPTR back to ULONG/LONG) the few places which really rely on ULONG/LONG being exactly 32 bit. That's for things like pixel (ARGB) buffers, structs written/read to disk, colormaps, but probably not much else.
Then again, many current compilers also throw a warning when you try to assign a pointer value to an integer and the integer is possibly too small. This happens under .NET for example when a 64 bit pointer is assigned to something like an ULONG - so exactly the case which you described.
=== AI ===
#Training learning using 1 or more high end GPUs at least 16GB VRAM per GPU card or 64Gb or more of unified, 16Core CPU with at least 64Gb of RAM system memory, though training can take weeks or more
#Inference with custom asics or GPUs
Alibaba Cloud's [https://huggingface.co/ Qwen] team series of large language models
*[https://huggingface.co/models?other=qwen3 Qwen 3], [],
*[https://huggingface.co/models?other=qwen2 Qwen 2], [https://huggingface.co/Qwen/Qwen2.5-Coder-32B qwen 2.5 Coder],
[https://github.com/sipeed/picoclaw picoclaw]
[https://ollama.com/download Ollama single gpu]
[https://lmstudio.ai/download LMstudio single gpu],
[https://github.com/ggml-org/llama.cpp/releases llama.CPP multi gpus],
[ VLM multiple gpus],
=== Linux ===
<syntaxhighlight lang="c">
/* 1. Header for your name,date,purpose of program.
2. Pre-processor directives. This will include the #includes for files you want to add.
3. Includes for function prototypes if necessary.
4. Main()
Create Pointers for Libraries and any Window you want to open.
5. Open necessary libraries.
6. Check if open exit program if fail.
7. Open a window exit program if fail.
8. Add your program
9. Close Window
10 Close Libraries.
11 End Program. */
/* standard os included headers <.h> */
#include <dos/dos.h>
#include <dos/dosasl.h>
#include <dos/dosextens.h>
#include <dos/exall.h>
#include <dos/rdargs.h>
#include <exec/memory.h>
#include <exec/types.h>
#include <utility/utility.h>
#include <intuition/intuition.h>
/* define as unresolved external references (proto/xxx.h) and compiler will link to auto(matically) open library */
#include <proto/arossupport.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/datatypes.h>
#include <proto/icon.h>
#include <workbench/workbench.h>
#include <workbench/icon.h>
#include <datatypes/pictureclass.h>
#include <proto/muimaster.h>
#include <libraries/mui.h>
#include proto/bsdsocket.h
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* my own headers ".h" */
#define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
#define isDir(fib) ((fib)->fib_DirEntryType >= 0)
#define ARG_TEMPLATE "FILE/A,ALL/S,QUIET/S,W=WIDTH/N,H=HEIGHT/N,M=METHOD,DEFTOOL"
int main(void)
{
return retval;
} /* main */
</syntaxhighlight>
If you used c++, there is not yet c++ support in our shared library system.
The easiest way to create / compile a shared library would be to use the AROS build system but the libraries can be created manually. You have to create a ROMTAG structure and some header files.
A shared library is built with the %build_module macro with a line like this:
%build_module mmake=MetaTarget modname=mylib modtype=library files=SourceFiles
This macro can build different AROS module types, like devices, Zune classes, HIDDs, etc.
<pre>
##begin config
version 1.0
##end config
##begin functionlist
void func1(LONG a, LONG b)
int func2(char *s, ULONG a)
##end functionlist
</pre>
There is more [http://aros.sourceforge.net/documentation/developers/sys-dev/libraries.php here]
Alternatively,
<pre>
#ifndef LIB_H
#define LIB_H
#define __NOLIBBASE__
#include <exec/libraries.h>
#include <exec/semaphores.h>
#include <dos/dos.h>
#ifdef __AROS__
//#include <aros/debug.h>
#define reg(x)
#define __saveds
#endif
#define USESYSBASE struct ExecBase *SysBase = Base->My_SysBase;
struct MyTestBase
{
struct Library My_Test_Lib;
struct ExecBase *My_SysBase;
APTR My_SegList;
int testint;
};
#endif
</pre>
<pre>
/*--------------------------------------------------------------------------*/
/* Resident header written for mytest.library */
/*--------------------------------------------------------------------------*/
#define __NOLIBBASE__
#define VERSION 1
#define REVISION 0
#define LIBHEADNAME mytest
#define LIBHEADNAMESTR "mytest"
#define COMPDATE "04.10.2015"
#define VERS "1.0"
#define LIBBASETYPE struct MyTestBase
#define LIBBASETYPEPTR LIBBASETYPE *
#include <aros/debug.h>
#include <exec/exec.h>
#include <proto/exec.h>
#include <exec/resident.h>
#include <exec/nodes.h>
#include <exec/libraries.h>
#include <aros/symbolsets.h>
#include "lib.h"
const UBYTE lib_name[] = LIBHEADNAMESTR ".library";
const UBYTE lib_id[] = "$VER: " LIBHEADNAMESTR ".library " VERS " (" COMPDATE ") by ALB42\n";
extern const APTR FuncTable[];
AROS_UFP3 (LIBBASETYPEPTR, InitLib,
AROS_UFPA(LIBBASETYPEPTR, Base, D0),
AROS_UFPA(BPTR, seglist, A0),
AROS_UFPA(struct ExecBase *, sysbase, A6)
);
static struct LibInitStruct
{
IPTR LibSize;
const APTR *FuncTable;
const struct DataTable *DataTable;
APTR InitFunc;
}
const LibInitStruct =
{
sizeof(LIBBASETYPE),
FuncTable,
NULL,
(APTR)InitLib
};
const struct Resident romtag =
{
RTC_MATCHWORD, /* match word */
(APTR)&romtag, /* back pointer */
(APTR)(&romtag + 1), /* skip pointer */
RTF_AUTOINIT | RTF_EXTENDED,/* flags */
VERSION, /* version */
NT_LIBRARY, /* type of module */
0, /* init priority */
(STRPTR)lib_name, /* module name */
(STRPTR)lib_id + 6,
(APTR)&LibInitStruct,
REVISION, NULL
};
AROS_UFH3 (LIBBASETYPEPTR, InitLib,
AROS_UFHA(LIBBASETYPEPTR, Base, D0),
AROS_UFHA(BPTR, seglist, A0),
AROS_UFHA(struct ExecBase *, sysbase, A6)
)
{
AROS_USERFUNC_INIT
Base->My_SegList = seglist;
Base->My_SysBase = (APTR)sysbase;
Base->testint = 0;
USESYSBASE
bug("InitLib\n");
if (!set_open_libraries())
{
set_close_libraries();
return NULL;
}
return Base;
AROS_USERFUNC_EXIT
}
AROS_LH1(LIBBASETYPEPTR, LibOpen,
AROS_LHA (ULONG, version, D0),
LIBBASETYPEPTR, Base, 1, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibOpen\n");
(void)version;
Base->My_Test_Lib.lib_OpenCnt++;
return Base;
AROS_LIBFUNC_EXIT
}
__saveds APTR LibExpungeInternal(LIBBASETYPE *Base reg(a6))
{
USESYSBASE
APTR seglist;
bug("LibExpungeInternal\n");
if (Base->My_Test_Lib.lib_OpenCnt)
{
return 0;
}
seglist = Base->My_SegList;
Forbid();
Remove((struct Node*)Base);
Permit();
FreeMem((APTR)Base - Base->My_Test_Lib.lib_NegSize, (LONG)Base->My_Test_Lib.lib_PosSize +
(LONG)Base->My_Test_Lib.lib_NegSize);
set_close_libraries();
return seglist;
}
AROS_LH0(BPTR, LibClose,
LIBBASETYPEPTR, Base, 2, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibClose\n");
if (!(--Base->My_Test_Lib.lib_OpenCnt))
{
return LibExpungeInternal(Base);
}
return 0;
AROS_LIBFUNC_EXIT
}
AROS_LH1(BPTR, LibExpunge,
AROS_LHA(LIBBASETYPEPTR, Base, D0),
struct ExecBase *, sysBase, 3, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
(void)sysBase;
USESYSBASE
bug("LibExpunge\n");
return LibExpungeInternal(Base);
AROS_LIBFUNC_EXIT
}
AROS_LH0(LIBBASETYPEPTR, LibReserved,
LIBBASETYPEPTR, Base, 4, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibReserved\n");
return 0;
//return (APTR)LibReserved();
AROS_LIBFUNC_EXIT
}
// Space for your own functions
// do not forget to update the FuncTable as well
AROS_LH1(int, TestFunction,
AROS_LHA(int, TestValue, D0),
LIBBASETYPEPTR, Base, 5, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("TestFunction\n");
Base->testint = TestValue + Base->testint;
return Base->testint;
AROS_LIBFUNC_EXIT
}
// Functable -> Table of all functions in the Library, in right order - important!
const APTR FuncTable[] =
{
&AROS_SLIB_ENTRY(LibOpen,LIBHEADNAME,1),
&AROS_SLIB_ENTRY(LibClose,LIBHEADNAME,2),
&AROS_SLIB_ENTRY(LibExpunge,LIBHEADNAME,3),
&AROS_SLIB_ENTRY(LibReserved,LIBHEADNAME,4),
&AROS_SLIB_ENTRY(TestFunction,LIBHEADNAME,5),
(void *)-1
};
// AutoInit stuff
void *__PROGRAM_ENTRIES__symbol_set_handler_missing;
void *__LIBS__symbol_set_handler_missing;
// end of AutoInitStuff
</pre>
Makefile
<pre>
VPATH =
CFLAGS = -O2 -g -fomit-frame-pointer -W -Wall -Wno-parentheses
CC = i386-aros-gcc
LD = i386-aros-gcc
LDFLAGS = -nostartfiles -Wl,-Map -Xlinker linkermap
LIBS = -lautoinit -llibinit
STRIP = i386-aros-strip --strip-unneeded --remove-section .comment
OBJS = lib_header.o
all: mytest.library
mytest.library: $(OBJS)
$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
lib_header.o: lib_header.c lib.h
clean:
rm -f *.o *.library *.ppu testlibrary linkermap
</pre>
Porting UNIX library to AROS - dealing with static variables which would make it easy to port such libraries to AROS, keeping the benefits of sharing them on disk, but losing the benefit of actually sharing them in memory.
Our problem arises by the fact we want to share the actual code (the .text section of the library) and constant data, but we need to have per-task .bss and .data sections. If we get rid of our intention to share the .text and .rodata sections, things get quite easy: just load and relocate the library whenever it's open, by whoever it's open. It's like statically linking the library into the executable, except that the final linking is done at runtime.
In the V0 branch, in workbench/hidds/hidd.nouveau was committed pcimock.hidd. This is a pci driver that allows mocking real PCI devices under linux-hosted. The main idea is to be able to run the real hardware driver under linux-hosted with as little changes as possible (some changes will always be needed though unless someone wants to write complete device simulator) so that driver's code paths can be executed and debugged using gdb. This was a very helpful capability when porting nouveau. Now it is externalized from nouveau.hidd and can be used by other people porting drivers. The pcimock.hidd can currently mock 4 different nvidia cards, 1 AGP bridge and also mock irq.hidd.
What's the difference between this driver and the pcilinux.hidd? I used that one to develop many different HW drivers for aros. As far as I understood the intention of pcilinux.hidd it is supposed to get access to real hardware that is running under linux. The pcimock.hidd goal is to mock the hardware. For example my dev box is a PCIE system, but I still would like to run the AGP codes paths in nouveau under linux-hosted to check if they don't seg fault. The other case would be to run codes paths for hardware that the developer does not have (Fermi cards in my case). In the case of pcimock.hidd, the AROS driver's code paths will execute as long as you add proper mocking (for example fill in PCI config area or values for registers in BARs). This is an advantage for ported drivers - the code should already work (since it worked on another system) but there might have been mistakes made during porting which can be detected easily with gdb.
In case you are writing your driver from scratch, pcilinux.hidd hidd will give you more advantage, since you can actually access the real hardware from linux-hosted.
== Misc ==
===APL, MPL, BSD, GPL and LGPL Licences===
The majority of AROS sources in licensed under AROS Public License ([http://aros.sourceforge.net/license.html APL]) which (to a degree) protects us from someone taking AROS sources and not contributing improvements back (for example MorphOS took some AROS source and then contributed changes back)
It is written to allow the use of AROS code in other open source or commercial projects without exception whilst providing a mechanism so that improvements/additions can find their way back to the original source in one form or another.
There are "3rd" party applications used by AROS that do not fall under this license, which are an extra "Contrib" download for convenience.
Anyone can port GPL-ed network and sound drivers as AROSTCP and AHI are GPLed. Direct using (porting) [http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL]-ed code in other parts of AROS (gfx, sata, usb) is not possible because AROS license is not compatible with GPL. You need to utilize permissive licensed code like BSD or MIT/X11.
BSD and MPL license are the closest to APL.
APL however is not so compatible with LGPL/GPL.
LGPL case - you cannot statically combine APL code with LGPL. You can, however thank to LGPL being "lesser" restrictive, use LGPL dynamically loaded libraries in APL codes.
GPL case - you cannot combine APL code with GPL in any way if there is no explicit clause by GPLed code authors allowing that. If you do combine APL with GPL in "bad" ways described above - you have a problem (you violate GPL). This problem might result in everything in AROS becoming GPL or everything running or AROS becoming GPL (here I'm not sure really). The other scenario is that you are not allowed to legally distribute such code at all. To be honest I have grasped how to violate GPL, but I'm still no exactly sure what happens when you violate it (but I'm sure it's not anything nice)
GPL software can run on top of non-GPL "system components" (see system components exception of GPL), but the other way around (non-GPL using GPL) leads to problems. This means applications like scout, or Quake III are ok (in the majority of cases).
Theres no reason GPL drivers cannot be ported - but they cant be in AROS's ROM (requires linking APL code with GPL), nor can AROS depend on them (e.g. they must use existing apis).
If they are launched (dynamically linked) by a user action that is allowed. It is also allowed to distribute such binaries together for convenience.
GPL is not about statical or dynamic linking but is about executing process and function calls.
These components - SFS, isapnp, Zune texteditor, AHi, network drivers, freetype, openuirl, BHFormat, Edit and (" dynamically loaded libraries") are LGPL, not GPL. Mesa/Nouveau stuff is MIT. Some user tools are GPL though.
'''AROS (system)'''
* system components (libraries/classes/devices/etc) cannot be GPL as they would propagate GPL to complete system as well as GPL is not compatible with MPL from which APL is based
* system components can be LGPL v2 or a permissive license (MIT/BSD)
* system applications can be anything you like (but still I would prefer APL or permissive so the code can be reused if needed)
'''Contrib:'''
* no rules - contrib does not impact AROS system since nothing in AROS system depends on contrib.
About stealing code: The chances of this happening is exactly the same whether we are APL or GPL. If any closed-source option wanted to do it, there is no one that can validate otherwise. MorphOS has used some AROS codes, but contributed changes back.
The rationale behind APL is that while it guarantees that the original developer will get the improvements back (to a certain degree - file based), the person who uses the codes does not have to open his original codes. BSD does not guarantee that the original developer gets improvements. GPL requires the person using the codes to open his codes as well.
The copyright holders needs to stay - we just need information from them that the codes are available under APL (for example a checked-in file like in case of Poseidon). We don't do transfer of copyrights.
; Ultimately what can and cannot be done is up to the author(s) - not the licence.
===AROS source code tree===
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-trunk.txt
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
Found this interesting (non-GPL) licensing 'anomaly' - to keep in mind for distributors.
Programs that lose their license if sold ("non-profit only" licensed):
contrib/aminet/comm/term/TinyTerminal
contrib/aminet/dev/basic/bwBASIC
contrib/aminet/text/edit/xdme
contrib/fish/aroach
contrib/fish/lotto
contrib/fish/shuffle
contrib/fish/touch
+ cdvdfs.
Here is a list of all the GPL/GPLv2/GPLv3 licenses fossology found, what have explicit licenses in their comments.
excluded LGPL, BSD/GPL dual licensed and programs (such as Prefs/Edit and BHFormat)
<pre>
AROS/rom/dbus/include/ AFL_v2.1 ,GPL_v2+ (supposedly AFL < 3 is GPL incompatible)
AROS/workbench/classes/zune/betterstring/include/ GPL_v2+
AROS/workbench/classes/zune/texteditor/include/ GPL_v2+
AROS/workbench/classes/datatypes/gemimage/ GPL_v2+ GPL
AROS/workbench/classes/datatypes/degas/ GPL_v2+
AROS/workbench/libs/openurl/README: GPL
AROS/workbench/network/smbfs/documentation/ GPL_v2
AROS/workbench/network/smbfs/source_code/ GPL_v2+
AROS/workbench/network/stacks/AROSTCP/bsdsocket/kern/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/mmakefile.src conf.h GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/sys/ CMU ,GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/net/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/api/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/conf/conf.h: GPL_v2
AROS/workbench/network/stacks/AROSTCP/netinclude/net/radix.h: CMU ,GPL_v2
AROS/workbench/devs/AHI/AHI/ GPL_v2+
AROS/workbench/devs/AHI/AddAudioModes/ GPL_v2+ AROS/workbench/devs/AHI/AddAudioModes/COPYING: GPL
AROS/workbench/devs/AHI/Docs/texinfo.tex: GPL_v2+
AROS/workbench/devs/AHI/COPYING: GPL
AROS/workbench/devs/AHI/Drivers/EMU10kx/ GPL_v2+
AROS/workbench/devs/AHI/AHI-Handler/ GPL_v2+
AROS/workbench/devs/networks/rtl8029/ GPL GPL_v2+
AROS/workbench/devs/networks/pcnet32/ GPL GPL_v2+
AROS/workbench/devs/networks/ppp/LEGAL: GPL
AROS/workbench/devs/networks/atheros5000/ GPL_v2+
AROS/workbench/devs/networks/rhine/ GPL_v2+
AROS/workbench/devs/networks/nForce/ GPL_v2+ GPL
AROS/workbench/devs/networks/prism2/ GPL GPL_v2+
AROS/workbench/devs/networks/fec/LEGAL: GPL
AROS/workbench/devs/networks/rtl8139/ GPL GPL_v2+
AROS/workbench/devs/networks/etherlink3/ GPL GPL_v2+
AROS/workbench/devs/networks/intelpro100/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8169/ GPL GPL_v2+
AROS/workbench/devs/networks/emac/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8168/ GPL GPL_v2+
AROS/workbench/devs/networks/realtek8180/ GPL_v2+
AROS/workbench/devs/networks/via-rhine/via-rhine.c: GPL_v2+
AROS/workbench/devs/networks/via-rhine/ GPL GPL_v2+
AROS/workbench/devs/networks/e1000/ GPL_v2
AROS/workbench/devs/networks/sis900/ GPL GPL_v2+
</pre>
AHI: it has special provisions (COPYING.DRIVERS). The library is LGPL, preferences software is GPL and drivers can be anything without breaking GPL/LGPL.
Network stack: well, we are long overdue for a new, IPv6 enabled network stack anyway, anyone interested? ;) Seriously though it seems like the glue code is GPL and as all the drivers. However some of the drivers are our own code, so they could be relicensed to LGPL.
Same filter as the AROS trunk list. These should all be libraries or plugins - no programs.
<pre>
contrib/regina/utsname.h: GPL_v2+
contrib/mui/classes/nlist/include/default-align.h: GPL_v2+
contrib/mui/classes/nlist/include/amiga-align.h: GPL_v2+
contrib/mui/classes/BWins/include/MUI/BWin_mcc.h: GPL
contrib/mui/classes/BWins/include/BWin_private_mcc.h: GPL
contrib/mui/classes/BWins/COPYING: GPL_v2
contrib/mui/classes/BWins/MCC_BWins.readme: GPL_v2
contrib/mui/classes/thebar/include/default-align.h: GPL_v2+
contrib/mui/classes/thebar/include/amiga-align.h: GPL_v2+
contrib/gfx/libs/wazp3d/LEGAL: GPL
contrib/gfx/libs/wazp3d/Wazp3D.readme: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.c: GPL
contrib/libs/mpega/ GPL_v2+
</pre>
http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
===Types===
On AROS following rules apply:
<pre>
1. BYTE/UBYTE is 8bit, WORD/UWORD is 16bit, LONG/ULONG is 32bit, QUAD/UQUAD is 64bit, the types are comparable with stdint types (int8_t, int16_t, int32_t, int64_t)
2. IPTR/SIPTR are integer types large enough to fit pointer, that is sizeof(IPTR) = sizeof(APTR) = 4 on 32bit system, and = 8 on 64bit system
3. ti_Data in TagList is large enough to hold a IPTR/APTR type.
4. never store a pointer in integer of type LONG. It may work (if the pointer has upper 32bits clear), but does not have to. Compiler should warn you about that.
5. If you are unsure about point 4, allocate your memory with MEMF_31BIT flag set. But don't expect that AROS internals will do the same.
</pre>
point 4 is actually important.
* UBYTE/BYTE for 8bit
* UWORD/WORD for 16bit
* ULONG/LONG for 32bit
* UQUAD/QUAD for 64bit
<pre>
UBYTE Unsigned 8 bit integer variable (byte).
BYTE Signed 8 bit integer variable (byte).
UWORD Unsigned 16 bit integer variable (word).
WORD Signed 16 bit integer variable (word).
ULONG Unsigned 32 bit integer variable (longword).
LONG Signed 32 bit integer variable (longword).
FLOAT 32 bit IEEE floating point variable.
UQUAD Unsigned 64 bit integer variable.
QUAD Signed 64 bit integer variable.
DOUBLE 64bit IEEE floating point variable.
BOOL Boolean variable, TRUE and FALSE are also defined in exec/types.h.
VOID Void.
APTR A generic pointer for multiple purposes - Arrays.
STRPTR A pointer to a null-terminated string.
IPTR Really important in AROS, the only way to declare a field that can contain both: an integer or a pointer.
</pre>
if you want to write really portable app, you may be interested in standard datatypes defined in C99: int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, intptr_t, uintptr_t. They are all defined in inttypes.h include file.
In exec/types.h the following short-cuts are typedef'd. They are used often in AROS, so you should nearly always include exec/types.h and soon only they will be removed from sys/_types.h include, all types are now defined in include files named aros/types/xxx.h.
(Preparation for C library split; sys/xxx.h include will only be available there when compiling with POSIX C library)
Compiler specific types, like int and long might change their size. In case of AROS, similar to linux, int remains 32 bit whereas long grows to 64 bits in size.
If you use Amiga-like data types, i.e. BYTE/UBYTE, WORD/UWORD, LONG/ULONG and QUAD/UQUAD or the C99 standard types (uint8_t and so on, see stdint.h include) then you should have less issues to solve than by using types without size guarantee.
Of course, all pointers grow to 64 bytes using 64bit cpu. Most of the code can be just recompiled and will work. In rare cases, where e.g. pointers are casted to integers, a special care must be taken. Especially in the cases, where pointer is casted to LONG/ULONG (this code will break on 64 bit AROS) e.g. '#define IPTR ULONG'.
With compiler delint patches which the majority of them are simple casting issues to make the compiler happy. Notice some of the changes involve introducing double casts. In very recent versions of GCC. Yes, the bulk of the double casts are for converting 32 bit addresses (ie from a 32 bit PCI DMA address register) to a 64 bit pointer. First cast is to IPTR (to expand to 64 bits, and prevent sign extension if the address is above 0x7FFFFFFF), and then to APTR.
ULONG != IPTR except on 32bit .. so if you need to store pointers make sure and use IPTR and not ULONG (which some old code does). For this reason things like Taglist elements are 64bit (since the tag data can be a pointer).
If your passing items on the stack you should use the STACKED attribute to make sure they are correctly aligned (on 64bit all items on the stack are 64bit..)
There is more issues like using "== 0L" causes problems.
===Endian===
*BE
*LE
Use the macros from <endian.h> instead making a guess based upon architecture defines
<pre>
#if _BYTE_ORDER == _BIG_ENDIAN
#elif _BYTE_ORDER == _LITTLE_ENDIAN
#else
+
#error <whatever.h> - Byte order for this architecture is unsupported!
</pre>
===SVN and GIT===
If you want to help develop AROS OS itself, you can
* view current GIT/SVN entries [http://aros.sourceforge.net/ Aros Org website] or [https://github.com/aros-development-team/AROS Github], [https://github.com/ezrec older ezrec mirror], [https://github.com/michalsc/AROS/ older mirror], [https://trac.aros.org/trac/timeline TRAC], [],
* awaiting update [http://repo.or.cz/w/AROS.git git repo], [http://www.ohloh.net/p/aros/commits ohloh] or [https://svn.aros.org/svn/aros/trunk/ svn repo] and access [Git version git://repo.or.cz/AROS.git here],
* deprecated [https://www.gitorious.org/aros/aros/commit/a7fda9e ARIX commits] or [https://gitorious.org/aros/aros GIT old]
If you have SVN access (early 2015 introduced a new SVN server, create a new account at trac aros org) and/or have obtained the source [http://aros.sourceforge.net/download.php AROS site] - you can compile the current build tools/environment using:
> make development
and follow this [http://aros.sourceforge.net/documentation/developers/compiling.php#building procedure] or [https://github.com/apiraino/aros_guide Guide]
https://trac.aros.org/trac#Developing
If you plan on contributing back changes, please post information about such changes first on this [http://mail.aros.org/mailman/listinfo/aros-dev/ mailing list] for more experience developers can validate whether they are correct.
Then there are the nightly build machines. They svn update before the build and run configure as one of the next steps. autoconf might be added to the nightly build scripts.
Our build relies on packages downloaded from Internet (SDL for example) - it always worked this way. The minimal requirement (when just building core AROS) is binutils and gcc. If you build contrib as well, you need many more packages to be downloaded.
https://gitorious.org/aros/aros/commits/crosstools-II
git://gitorious.org/aros/aros.git
Branch crosstools-II there is only one commit on top of ABI_V1
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-x86_64
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-x86_64
</pre>
and
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-i386
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-i386
</pre>
build OK.
:''More information: [[Aros/Developer/Maintainer|AROS Maintainer Docs]]''
===SDI Calls===
Integrate the 'SDI'-headers to allow easier porting to all amiga-like platforms.
<pre>
PUTCHARPROTO( PutTheChar, char c, struct SPrintfStream *s )
{
// REAL CODE
}
</pre>
have "SDI_compiler.h" and "SDI_hook.h" included
its more organized like
#include SDI/SDI_hook.h
than
#include SDI_hook.h
option 1 --- i also use when back porting from amiga's..
<pre>
#ifdef __AROS__
#include SDI/SDI_hook.h
#else
#include SDI_hook.h
#endif
</pre>
also
you can add the -i include/sdi/ location if you do not want to add or edit any files.
Defining HOOKPROTO to IPTR name(struct IClass * cl, Object * obj, Msg msg); solved the problem
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order. examine compiler/include/aros/symbolsets.h (AROS_LIBREQ)
compiling mui stuff for aros setting -std=gnu99 is necessary (i have had -std=c99 most of the time).
===Locale with Flexcat===
Most languages have a locale, but not every app is localized, the only thing needed is to translate the "catalog" files. It is a case of locating the correct catalog and saving the translated version.
For every app that lacks of your language catalog and is localized anyway, you should find (in the sources) files related to locale:
* file.cd = catalog descriptor, contains base msg, with internal language (usually english)
* language.ct = catalog translation, contains every translated msg, indexed as in the file.cd.
Compare with other localized apps... Then, "make my_app-catalogs" should create and install your translated catalogs. ex : for, saying, sys:prefs/wanderer:
on root of AROS sources, type:
"make workbench-prefs-wanderer-catalogs"
then (if you changed the .cd file):
"make workbench-prefs-wanderer"
For apps not localized, you have to adapt their code to support it, if it is possible...
noticed the original .cd file has many (//) strings at the end of any voice, so added them also to the .ct file.
That (//) is only for cd files. I'm highly recommending to use FlexCat for updating ct files, e.g. like this:
flexcat app.cd deutsch.ct newctfile deutsch.ct
You'll get error checking and new entries are marked in the resulting ct file.
When editing .ct files, only change those lines containing translation and perhaps version string, nothing else.
The rest is up to the relevant tool, flexcat. In order to update your translation, type in the following in your shell:
flexcat xyz.cd xyz.ct NEWCTFILE xyz_upd.ct COPYMSGNEW
This way you will not only make sure you have correct translation file but flexcat also pre-fills newly added strings with "*** NEW *** text. Even better tool for checking cd/ct/catalog files is catcheck, but this one is sadly only available for AmigaOS/68k...
Some languages have variations, like portugues from portugal and portugues from brasil differs...
This is the way to go. I will have a look at language files, but basically if those two languages differ you have to do two separated set of translation files, yes.
(you could create a brazilian slang language localization too)
* At system level localization for one language is a dot language file.
(ex: locale:languages/klingon.language)
* At app level localization is a dot catalog file
(ex: locale:catalogs/klingon/system/libs/dos.catalog)
* At sources level, the dot ct file, and "$language" dot cd files and some building framework.
(ex: catalogs/my_app.ct catalogs/klingon.cd catalogs/mmakefile.src support.c support.h)
Please, use Flexcat to generate CT files:
FlexCat wanderer.cd NEWCTFILE=deutsch.ct
Then fill the first 2 lines with something useful:
<pre>
## version $VER: wanderer.catalog 1.1 (9.2.2006)
## language deutsch
</pre>
You can even update the CT-File: (This adds the new strings)
FlexCat wanderer.cd deutsch.ct NEWCTFILE=deutsch.ct
To compile a catalog you only need the .cd file and your translation (.ct file):
FlexCat multiview.cd deutsch.ct CATALOG=MultiView.catalog
[http://murks-ide.svn.sourceforge.net/viewvc/murks-ide/trunk/src/Catalogs/flexcat_linux?revision=100 Linux version of FlexCat]
: [http://aros.sourceforge.net/documentation/developers/app-dev/localization.php#localization-for-non-developers More information]
A script which compares the required version (i.e. the version which an application/module etc. tries to open) with the version of the existing CT files. The result is in this table:
https://github.com/aros-translation-team/translations/wiki/Progress
The following cases are highlighted:
n/a i.e. CT misses at all
version in existing CT file is lower than the required version
It might be a bit difficult to participate if you haven't worked with Git before but alternatively you can send your CT files to our Slack channel.
When the ct file has been generated via flexcat (flexcat keyshow.cd NEWCTFILE=spanish.ct) it has the following header:
---------------------------------------------------------------------------------------------------------------
## version $VER: <name>.catalog <ver>.<rev> (04.01.2021)
## language nolanguage
## codeset 0
;
---------------------------------------------------------------------------------------------------------------
Those values <ver>.<rev> are the version and revision of the CT file for the languaje or are the values of the application being localized?
The <ver> part must match with version which the application tries to open. You can find the value either in the column "Required Version" in the table which I've linked above, our you can look in the git repository. For keyshow it would be https://github.com/aros-translation-team/keyshow. You can find in the file "catalog_version.h" the right version number.
The <rev> part starts for new CT files with 0 and should be increased every time the CT file is updated.
Updated several files and created a few more that were missing on the spanish catalog.
The catalogs are in Git repositories at https://github.com/aros-translation-team
a) You tell me your Github user name. I'll invite you. You can work directly with the Git repositories.
b) You create Github forks of the catalog repositories and create pull requests.
c) You send the CT files to mrustler gmx de
===C Utils Misc===
The AROS source uses at several places the __DATE__ macro to fill the date entry of a $VER tag. Problem is that c:version doesn't understand that date format (e.g. "May 21, 2011"). As a result the output of e.g.
> "version c:shell full" contains "(null)". Is extending the version command to understand the format of __DATE__ the right solution for that problem?
AmigaOs compilers should use __AMIGADATE__ macro or similar form, if it isn't implemented it could be emulated in makefile: -D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\"
BTW. I think DD.MM.YYYY is better format than "Month DD YYY" because "Month DD YYY" is not localized in any way.
"strnicmp" shouldn't work with NULL pointers
The Situation:
compiled a linklib using c++ object files (using the c++ cross compiler).
compiled a C stub that uses the linklib (using the c++ cross compiler).
Try to link them together (using the c++ cross compiler) with C object
files (using the normal target c compiler) that need to use -nostartup
= cant do because using the c++ files pulls in arosc (for stdio etc.) -
so wants to have the autoinit stuff present.
What can I do about this??
If it is possible to manually open it then what do I need to do exactly?
=== ENV ===
The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact. However in some cases (like this one) it is not required.
99% of the time that statement is true (not required) for pretty much every file in ENV: or do people change their default icons - and prefs settings - every boot?
There seem to be a bad habit of late with developers changing things to reflect their own personal preference when the change isn't actually necessary - It would be nice if people could refrain from doing that in the tree without at least discussing it on the dev-list first (and with good reasoning unless they committed said work in the first place..)
We're not keen on the pollution of the "S:" dir: it's meant to be for scripts. What's wrong with "ENV:"?
Only the fact that it takes up RAM. I understand that for PCs with several gigabytes of RAM this is
irrelevant. But let's remember about other machines. The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact.
However in some cases (like this one) it is not required.
How about implementing in the style of HappyENV then? RAM-disk handler that falls through to reading from ENVARC: if there is no such file stored in it already. Removes RAM usage for unchanged files, removes the need to copy ENVARC to ENV in startup-sequence.
Shouldn't be too hard to make from AmberRAM, or even just extend AmberRAM to provide this service.
Is it feasable to build a special version of AmberRAM handling ENV: that will try and copy the requested file from ENVARC: if it isnt found in ENV: ?
Additionaly it could mark closed "files" as untouched - and expunge them from ENV: after a period of time to free up additional RAM:, or when the system is running low on free memory?
Silenty disappearing files may not be a good plan. Would be nice if the following would work:
ASSIGN :ENV SYS:Prefs/Env-Arc ADD
ASSIGN :ENV RAM:ENV ADD
Where new files put in ENV: end up in RAM:ENV, and opening files looks in RAM:ENV first, then SYS:Prefs/Env-Arc
Well - that's essentially what im proposing but without the assigns - or need for a RAM:ENV directory.
Adding it as a feature of AmberRAM sounds like the most memory efficient way (one handler to load in RAM) but that's only if it is possible to make it handle ENV: additionally to RAM:, and if it is even possible to add the proposed functionality (...and how to make it enable it when accessing ENV:).
===(AS)MP support===
If one has to recompile software for SMP multi core, is there any thing special one has to do to get software to run?
Use task.resource if you need to query information about what tasks are running, and clear msgports completely when they are allocated.
Most code should not need Forbid. Use Semaphores, Messages etc. to sync your own code.
Accessing system structures is a different thing. Use the proper API whenever possible.
How single structures will be protected in the future is still a moving target, at least it is not documented. And you should never use undocumented stuff
Ideas on for SMP multi-core
Another suggestion is ... Forbid/Permit function calls are meant to halt multitasking so as no other task could intervene with what ever the calling task is doing, e.g. setting semaphores. Disable/Enable calls are meant to halt interrupts and as a side effect they also halt task switching.
One option is to make it compulsory to protect shared resources with semaphores and forbid the use of simple Forbid() calls as to protect something. Setting semaphore should be done if possible with atomic instructions (check and alter in one instruction). Or make the second concurrent ObtainSemaphore call halt the second calling task and force if possible a task switch which ever gives better results.
Semaphores could store the owning tasks task pointer instead of boolean to make things easier.
As long as the CPU initiates the DMA transfers through the OS, and the OS ensures that the transferred memory is within the region accessible to the user initiating the transfer, everything is fine. The CPU is the conductor, and the CPU by that has the control of which DMA transfer is initiated and which is not.
All you need to do is to write device drivers reasonable. Hint: CachePreDMA and CachePostDMA exist.
All the Os has to do is to verify that the memory regions to be transferred are valid, and prohibit direct access to the DMA control registers from user space. None of these algorithms imply huge costs.
The current OS design doesn't really allow virtual memory in first place, Forbid() is again the problem.
[http://www.tbs-software.com/guide/index.php?guide=autodocs.doc%2Fmemory.doc&node=1 memory.library API] seem to low level. IMHO the programs should not know how the swapping is implemented. I would just go for one new memory flag
MEMF_SWAPPABLE that indicates that a certain memory region or a whole memory pool won't be accessed during Forbid()/Permit() etc. It only solves part of the problem, it only implements virtual memory and not memory protection. For the latter you need to be able make certain memory inaccessible by other programs, some memory read-only for one task and read-write for other tasks, etc. And I think this should be done in the same Address Space in order to avoid you constantly need to swap between different address spaces.
So to summarize, if there are programs using this API we may provide a wrapper layer to get them working but I am not convinced this API should be the reference API with whom to provide VM to AROS programs.
=== Variadic ===
variadic functions (i.e. functions with an arbitrary amount of arguments).
<pre>
#include <stdarg.h>
[...]
char * STDARGS GetKeyWord(int value, char *def, ...)
{
[...]
va_list va;
[...]
va_start(va, def);
[...]
va_end (args);
</pre>
Please keep with using stdarg rather than having va casted to a LONG * type and varargs handled manually. Doing so, prevents tons of casting, where a simple va_arg can be used. So, string = *((char **) args) instead of string=va_arg(va, char *).
<pre>
#include <stdio.h>
#include <stdarg.h>
int printf (const char * format, ...)
{
int retval;
va_list args;
va_start (args, format);
retval = vfprintf (stdout, format, args);
va_end (args);
fflush (stdout);
return retval;
} /* printf */
</pre>
Couldn't find varargs.h or stdarg.h. and have no use for AROS_SLOWSTACKHOOKS or AROS_SLOWSTACKTAGS.
GCC looks for stdarg.h in a different place:
/bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/include/stdarg.h
Here is a path for a "normal" header:
bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/../../../../i386-aros/sys-include/aros/system.h
The use of vararg.h isn't supported by newer gcc versions. If you want your code to run on architectures that pass part of variadic arguments in a number of registers you need to use AROS_SLOWSTACK macros. Otherwise your program will not work on powerpc and x86_64 ports.
Of course the SLOWSTACK stuff is not needed in a function that can use va_list, va_start, va_arg and va_end. It's only needed if you want to write functions like DoMethod or similar.
#include <stdarg.h>
should be enough no matter if you do cross or native compiling. If it does not work, something is wrong and should be corrected.
Stdarg.h is here, Development:lib/gcc/i386-aros/4.2.2/include/
...which is part of the compiler's default include paths. In other words, #include <stdarg.h> works out of the box, indeed. (sorry, I should have just tried it before invoking "search" or "find"...)
furthermore, myprintf() as shown above won't work, because...
printf(format, args);
...is wrong - the second argument does not match printf() prototype, it expects a argument list, but args is of type va_list (obviously) - so one has to use...
vfprintf(stdout, format, args);
...instead, just like in the original printf(), and add fflush(stdout).
additionally, one could use...
int myarg = va_arg(args, int);
...between va_start() and va_end() to access individual arguments, where each call to va_arg() returns an argument casted to the desired type (here: "int") from the list given (here: "args") and advances to the next one.
wrapping up vfprintf() and modifying the format string now is a major speedup! no more backslash-n typing! this has been haunting me for years!
On MOS and AmigaOS, the NewObject variadic function is kept in the static library. It takes most of the parameters on the stack - thanks to that the implementation of NewObject calls the NewObjectA function. Everything works perfect, and the typical MUI macros may be easily used.
This, however, is not the case when you compile for AROS. Here, NewObject is a variadic macro, not a function. Thanks such approach we do not need any custom compiler in case of systems, where the arguments of variadic functions are passed partially through registers and partially through the stack (This is the case of PPC and x86_64, this is also the reason why both OS4 and MOS require specially patched compilers).
Since NewObject is a macro, the gcc's preprocessor expects the list of macros arguments enclosed within parentheses. In MUI macros it is not the case. Imagine the following test code:
<pre>
#define foo(a,b) ((a)+(b))
int loosy_function(int a, int b)
{
return foo(a,b);
}
</pre>
This will compile and work, but the following piece of code:
<pre>
#define foo(a,b) ((a)+(b))
#define END )
int loosy_function(int a, int b)
{
return foo(a,b END;
}
</pre>
will fail with the error: unterminated argument list invoking macro "foo"
There are two ways of fixing your issue. Either create your new objects outside this huge MUI constructions, and in there use just a pointer, or get rid of the "End" macro and exchange it with "TAG_DONE)".
Badly written software is, for example, casting va_list to an APTR or even doing so as if va_list were a plain table of function arguments. Such code needs to be fixed because it has very few chances to work anywhere but on author's machine ;)
The problem is nOt that they assume sizeof(APTR) == 4, its that they often do not use APTR, and use ULONG to store pointers exclusively. If the code used APTR/IPTR as it should - most of the "problems" wouldn't exist.
It would also help if people would start using variadic arguments properly. Many coders do assumptions which shall never be made. Instead, they should consider using stdarg.h file and all the va_* functions :)
===ABI===
In the head of our SVN repository there are now only 3 directories:
<pre>
admin/
branches/
trunk/
</pre>
We have added two extra dirs there: tags and imports
As discussed when we branch ABI V0 and [[Aros/Developer/ABIv1|ABI V1]] it would also be good to introduce tags. Normally this is done in a directory in the repository called tags. Currently we don't have this directory there. (We do have branches/tags that is a hack I have done because one doesn't have write access in the top directory. I think this directory is not clean and should be removed).
The second directory I would introduce is an imports directory for implementing vendor branches as discussed in the svn [http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html book]. Currently we use code from several different projects and that code is stored inside the AROS tree; we seem to have problems with keeping this code up to date and merge our changes upstream. Maintainers of up stream projects like the MUI classes etc. have complained about this (to put it lightly).
Introducing these vendor branches would make it easier to see what changes we have made and make patches to be sent upstream and make it easier to import newer upstream versions of their code. Although can't "copy" the vendor branch into the main branch because it's already there, so start with a "merge".
Yes, the first step to make the code already in the repository compatible with the vendor branches will be the most difficult. The best way to do it the following way:
* first import the version on which the current AROS code is based into the vendor branch
* then import the new version over it in the vendor branch
* finally merge the difference between these two version in the AROS code present in the repository.
For example, place NList directly under vendor and not in a subdirectory like "contrib/zune/classes".
Actually after we have a stable [http://aros.sourceforge.net/documentation/developers/specifications/drafts/abiv1.php ABIv1 (2012 or later)]. We need to move away as much as possible from the contrib directory to some other repositories. The reasons are ...
* The AROS repository should be for the core AROS code.
* other contrib projects should be tried to be compiled for all Amiga-like OSes.
* The release scheme for AROS and the other programs should not have to be aligned.
* Binary versions should be provided on aros-archives and on aminet and/or OS4Depot to install them. (Some clever programs should maybe be provided to make the life of distribution developers easier).
* avoid parallel forks of programs for AROS and the other amiga OSes.
If there is really a need for a place for hosting AROS projects we may investigate setting up such a server but then including bug tracking, governance, maillist, etc. for each project separately. I personally think there are already enough places like sourceforge, google code, savannah, etc. where people can go for hosting such projects.
==Links==
* http://amigadocs.hokstad.com
* http://amigadocs.hokstad.com/doku.php?id=dev-links
* http://www.liquido2.com/tutorial/index.html
* Amiga(TM) OS4 has a [http://www.ast-workshops.co.uk/os4pg/ workshop] page and hope to produce a [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=31117&forum=42#549091 book] soon. [http://www.solie.ca/articles/map/map.html Brief Guide].
In the future...?
*AROS 64bit - SMP, Vulkan with OpenGL compability layer
*AROS 32bit - keep for historic reasons
What would you like to see implemented in AROS?
ABIv1 completed, SMP (x86_64), SendMsg()/GetMsg() to support memory protection between target and destination, in that order. Michal Schulz and Jason McMullan have been toying with the question "What are the minimal changes needed to the AmigaOS 3.1 API to support SMP"? The answer so far seems to be "few, but subtle". For example, SysBase->ThisTask is no longer meaningful on SMP, but FindTask(NULL) is. Disable() and Forbid() are shockingly bad on performance, but adding a spinlock semaphore mode to SignalSemaphore will help new code on SMP.
Leveraging a 'common' OS with a lot of machine support (Linux, MacOS, Windows, QNX, etc.) is something that AROS has been doing for quite a long time, and it is the biggest strength of AROS. This AROS experience and programming model, in the same way the Google's Android layers on top of Linux, or MacOS X layers on top of the Darwin/BSD kernel, as a first step
* The graphics + layers subsystem could be implemented as a shim on top of a OpenGL ES implementation (ie on any modern Linux system, or the RaspberryPI's hardware, MacOS X, etc).
- This also allows every window to be on its own 3D surface with backing store, allowing Wanderer (or a Commodity)
rearrange/zoom/animate app windows without having to send a pile or refreshes to them
* Use OpenAL as the sound backend
* AROSTCP would be a thin layer over the native OS's TCP/IP stack
* dos.library, poseidon.library, and input.device would be slim shims over the native APIs
* If we move to loading all libraries' into the application's task space, instead of a single global instance of the library, this will allow SMP and MMU more easily.
- Yes, it will require a lot of work in the libraries to make this transition
- Yes, I do think it will be worth it in the end.
* A 'fat binary' install format (or, maybe LLVM bytecode) that can be 'flattend' to the target architecture on installation.
So, what would this 'AROS of the future' look like?
* AmigaOS 3.x style API, with certain 'fundamental changes' to message passing
* Uses the underlying OS' device drivers, so more AROS developer effort can go to user-visible features and bugfixes
* Allows AROS applications to run side-by-side with the OS's native apps
And why would anyone want to program on such a system?
* AROS applications would run on any system that has the AROS Framework installed
* AROS applications are pixel-for-pixel the same on all platforms.
* Develop with the knowledge that you are guaranteed OpenGL and OpenAL, and the rest of the AROS Framework
an option for mmake to dump its dependency of metatarget in a graphviz[*] input file. This should make it possible to visualize the dependencies and hopefully be inspiration for cleaning up some mess, circular or unneeded dependencies and so on.
AmigaOS gcc 9 [https://franke.ms/amiga/gcc.wiki Old versions] able to create binaries for AmigaOS and [https://eab.abime.net/showthread.php?t=93813 Upgrading gcc versions]
==References==
{{reflist}}
{{status|50%}}
{{BookCat}}
esappv3b3bed5gqlpqi8z51476krnc0
4640453
4640452
2026-06-16T14:52:02Z
Jeff1138
301139
4640453
wikitext
text/x-wiki
{{ArosNav}}
==A technical overview of AROS==
Google translation [http://translate.google.com/translate?hl=en&sl=auto&tl=de&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs German], [http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs French], [http://translate.google.com/translate?hl=en&sl=auto&tl=it&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Italian], [http://translate.google.com/translate?hl=en&sl=auto&tl=es&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Spanish], [http://translate.google.com/translate?hl=en&sl=auto&tl=hi&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Hindi], [http://translate.google.com/translate?hl=en&sl=auto&tl=zh-CN&u=http%3A%2F%2Fen.wikibooks.org%2Fwiki%2FAros%2FDeveloper%2FDocs Chinese],
[http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Russian],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pl&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Polish],
[http://translate.google.com/translate?hl=en&sl=auto&tl=pt&u=http%3A%2F%2Fen.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DAros%2FDeveloper%2FDocs Portuguese]
{{Uncited}}
AROS,<ref>[http://aros.sourceforge.net/download.php References and sources]</ref> like AmigaOS (TM), is a [[w:Message passing|message-passing]], [[w:Preemption (computing)|preemptive]] [[w:Multitasking|multitasking]] [[w:Operating system|OS]].
It uses [[w:Reentrant (subroutine)|re-entrant]] shared libraries to save memory space.
AROS is based around an executive library kernel (Exec) and two other libraries:
* Exec (the "kernel", which is not a kernel in the modern sense),
* Intuition (graphics and GUI, integrated into the system) and
* AmigaDOS (Disk Operating System, the Metacomco's Tripos modified to work with Exec).
The design philosophies of AmigaDOS and Intuition are rather different, the former adopting a C-like API and the latter creating an [http://www.basden.demon.co.uk/amiga/amiga.oo.html object-oriented], message passing aware environment for the programmer. The system base is the only absolute address in AmigaOS (located at 0x00000004) this does differ with AROS as AROS SysBase is automatically provided (no $4) but everything else is dynamically loaded. The OS is well known for delivering high performance due to its close connections with the hardware, while simultaneously having the flexibility to support re-targetable graphics (Cybergraphics) and retargetable audio subsystems (AHI).
: Diagram showing relationships of libraries to system needed
Remember, AROS is a [http://en.wikibooks.org/wiki/Aros/Developer/ABIv1 research] operating system, and while all contributions to the base AROS code are welcome, please contact the dev list first for any core changes. Writing applications for AROS does not have this requirement.
While AROS appears and feels almost feature complete, it is still [[Aros/Developer/IncompleteAPIs|missing a small number of functions]] from the Amiga API - as well as a few implementations of [[Aros/MissingFunctionaility|core functionality]]. There are also a number of user applications that, while not strictly part of the AmigaOS 3.1 environment, need to be written.
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1201 This thread provides] information for setup, [http://www.aros.org/documentation/developers/index.php documentation] and whether you are interested in core OS changes and/or writing/porting software apps
*you compile directly under AROS, which can be running on either real hardware, virtual hardware
*in hosted mode under linux/window, cross-compile from that host OS (save your files as ISO-8859-15 encoding instead of UTF-8)
The repository for the [https://github.com/aros-development-team/AROS current development version ABIv1], the [https://github.com/deadw00d/AROS/tree/alt-abiv0 repository for current stable PC version ABIv0 with backported ABIv1 features is located which is used on AROS One and Icaros x86 based distros]
Any [https://github.com/aros-development-team/AROS/issues bugs / issues can be added]
We have a [https://arosdevteam.slack.com/archives/CUFV48U3H slack here], discord on [https://discord.gg/UKp9qdEBuQ Discord@AmigaDev],
==Software Development for AROS==
===Programming languages===
Apart from 'The Developer Environment', which primarily supports C/C++ code, there are other programming languages available for AROS:
'''Scripting'''
:[[Aros/User/DOS|DOS]], included in all
:[[Aros/Developer/Docs/LUA|LUA]], included in all or [http://www.airsoftsoftwair.de/en/prod_hollywood.html Hollywood]
:REXX [[Aros/Developer/Docs/Rexx|Regina (AROS' ARexx)]], included in all
:Python [ Info], included in Icaros
:Ruby [http://www.ruby-lang.org/en Info]/[http://archives.aros-exec.org/index.php?function=browse&cat=development/language download]
'''Basic'''
:[http://amos.pspuae.com/AmosProManual/contents/c1.html '''Amos Pro'''] [http://amos.pspuae.com/index.php?action=forum#1 compatible] [http://www.amigacoding.com/index.php/Main_Page commands] (all incomplete)
::[http://sourceforge.net/projects/xamos/ X-Amos]
::[http://sdlbasic.sourceforge.net/ SDLBasic] ([http://archives.aros-exec.org/index.php?function=browse&cat=development/language download])
::[http://alvyn.sourceforge.net/ Alvyn] ([http://www.dusabledanslherbe.eu/AROSPage/MISC.14.html download])
::[[Aros/Developer/Basic/Basic4SDL|Basic4SDL]] ([http://archives.aros-exec.org/index.php?function=browse&cat=development/language download])
::[http://www.ultimateamiga.co.uk/index.php?topic=9425.0 Project Deimos],
:'''Blitz Basic''' [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=46537#forumpost46537 none on AROS]
:: [http://www.amiforce.de/main.php Amiblitz] on JanusUAE amiga(TM) emulator
:'''Amiga Basic'''
:: [ ACEBasic]
'''Misc'''
:[[Aros/Developer/Docs/E|AmigaE Portable E]]
:[https://ae.arosworld.org/index.php?board=11.0 FreePascal FPC Aros-Exec thread], [http://archives.aros-exec.org/index.php?function=browse&cat=development/language Download], FreePascal for AROS has its own [http://fpcaroswiki.alb42.de/ Wikibook],
:[[Aros/Developer/Docs/LLVM|LLVM]],
===Where to get the C/C++ Environment===
If you want to develop for AROS, its generally easier to be running linux hosted AROS development environment especially for C++, cross compiling the code. That's how most developers now are doing it. g++ is used to compile owb web browser as well as some other AROS software. If you were hoping for a rich set of C++ libraries or classes defined for the OS feature set, you might be disappointed.
AROS Native compiling is possible, but you're much more likely to run into the odd bug(s) in the dev environment since it gets little testing and fixing by other developers.
Is there a sftp software or scp over ssh available?
Maybe. At least the security part would be handled by [https://github.com/jens-maus/amissl amissl] [https://archives.arosworld.org/index.php?function=browse&cat=network/misc port]. DOpus5 has recently added sftp support. See here for a [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1974&highlight=ssh&pid=12073#post_12073 ssh scp client]
[https://arosdevteam.slack.com/join/shared_invite/enQtOTc4Mzg0NDIzNzQ0LWQ2NWZmNmMwNGIwNGEyNTgxNzU3MGFjMTk3ZThmOTQ1MTVjMzhmNTllYWQ0ZTUxMjBjMGE0Y2VjMDJmNTc5MzI#/shared-invite/email Slack Dev Forum]
====Cross compilers from Windows or Linux====
*Windows WSL2 walkthrough can be [https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/ found here]
you want to build AROS. No problem.
Here are instructions for 64-bit:
https://github.com/deadw00d/AROS/blob/master/INSTALL.md
Here are instructions for 32-bit:
https://github.com/deadw00d/AROS/blob/alt-abiv0/INSTALL.md
And as always has been the case you can use the contrib archive to 'obtain' the development directory which contains the /native/ AROS gcc compiler and tools. That compiler is used to build AROS itself but can be used outside the AROS build process by providing --sysroot with indicated directory to cross compile for AROS.
=====Older guides for Linux hosted compiler=====
Please install these packages before moving to next step. Below is a reference list for Debian-based distributions. Reference build system was Ubuntu 18.04/20.04 amd64.
subversion git-core gcc g++ make gawk bison flex bzip2 netpbm autoconf automake libx11-dev libxext-dev libc6-dev liblzo2-dev libxxf86vm-dev libpng-dev gcc-multilib libsdl1.2-dev byacc python-mako libxcursor-dev cmake zsh mingw64
Do all of these operations under home directory of your user or another directory where your user has write permissions.
Specifically, in a section "Linux-i386", be sure first to build the cross-compiler (toolchain-alt-abiv0-i386) and only then AROS itself (alt-abiv0-linux-i386).
Clone & build
<pre>
$ mkdir myrepo
$ cd myrepo
$ git clone https://github.com/deadw00d/AROS.git AROS
$ cd AROS
$ git checkout alt-abiv0
$ cd ..
$ cp ./AROS/scripts/rebuild.sh .
$ ./rebuild.sh
</pre>
Now to the build selection below - Linux-i386
Select toolchain-alt-abiv0-i386 - Select alt-abiv0-linux-i386 (DEBUG)
Start AROS by:
<pre>
$ cd alt-abiv0-linux-i386/bin/linux-i386/AROS
$ ./Arch/linux/AROSBootstrap
</pre>
Pc-i386 Select toolchain-alt-abiv0-i386 (if not built yet) - Select alt-abiv0-pc-i386
ISO image available in alt-abiv0-pc-i386/distfiles
Now that we have linux-hosted build, we can resume native (option 2).
Run ./rebuild.sh and selection option 2. Wait until it finished, then:
<pre>
$ cd alt-abiv0-pc-i386
$ make
</pre>
Now
<pre>
$ make bootiso
</pre>
Now, your compiler is located in toolchain-alt-abiv0-i386 directory and named i386-aros-gcc. Includes are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/include and libraries are in alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development.lib.
This is how then can be passed to the compiler:
/home/xxx/toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot /home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development -L/home/xxx/alt-abiv0-linux-i386-d/bin/linux-i386/AROS/Development/lib
../toolchain-alt-abiv0-i386/i386-aros-gcc --sysroot bin/linux-i386/AROS/Development local/helloworld/helloworld.c -o local/helloworld/helloworld
Another method was using Debian like distros and download the gimmearos.sh script (on [http://archives.aros-exec.org/index.php?function=browse&cat=development/cross aros-archives]) to setup the developer environment by downloading necessary packages ...
The gimmearos script is a good start in that direction, building the cross compilers and hosted AROS environment, but gimmearos.sh might be out of date or not be completely compatible with any given linux distro.
In order to do that, you have to compile AROS yourself. Download AROS source archive not contrib. Compile AROS by entering the main directory
./configure
make
([http://aros.sourceforge.net/documentation/developers/compiling.php More on compiling AROS]). The result will be a basic AROS system without development tools.
To compile C++ on Linux, type 'make gnu-contrib-crosstools', creating the cross-compilers in ./bin/linux-i386/tools/, named i386-aros-gcc, etc.
'''Note''': Currently, to make the cross compilers usable copy 'collect-aros' from tools/ to tools/i386-aros/bin/. At the moment the cross compilers if used from the Linux command line will only find it when it's there.
If you want to compile native compilers (the Developer Environment), type 'make contrib-gnu-gcc', creating native compilers in AROS' System:Development/bin directory.
When the output needs to be stripped <code>--strip-unneeded --remove-section .comment</code>
The Obj-C backend should build out of the box.
Open contrib/gnu/gcc/mmakefile.src and search for the line which contains "--enable-languages" and add "objc" to the list of languages that follows it.
--enable-languages=c,c++,objc
Better make it—enable-languages=c,c++,objc,obj-c++
ObjC++ is broken as soon as you try to use exceptions, but that might change in future GCC versions and it does not hurt having it there already.
Do you need a cross-compiler or a real compiler? In the first case you can get away with just downloading the proper gcc archive, apply the patch and proceed with the normal gcc build. In the case of a real cross-compiler then when downloading the contrib sources, also need to download the normal sources, place the contrib sources into a directory called contrib, need to install autoconf+automake+perl+python, call ./configure, cd into the subdirectory and type make.
to rebuild GCC with host == build == target == i386-pc-aros. So just get the vanilla sources and apply the patches without bothering about the build system?
[https://vmwaros.blogspot.com/2019/10/a-pre-configured-development-machine.html pre-configured VM environment vmware virtual machine to develop AROS and AROS software]
'''64 bit'''
'''32 bit'''
A good option for multiple OS is [https://axrt.org/index.php?tab=download-aros AxRuntime lets developers compile their Amiga API-based applications as Linux binaries being able to utilize modern development tools available on Linux, like IDEs, debuggers, profilers, etc]
====Native compilers for AROS====
Namely gcc for C or g++ for C++ are supplied with the [[Aros/Developer/Docs#The Developer Environment|Developer Environment]], which is already '''setup''' and part of any current AROS distribution like AROS One or the nightlies
* Current GCC 6.5 (32bit) though moving to 10.5 and 15.1 (64bit)
* Older software components. GNU GCC 4.x GNU BinUtils, GNU Fileutils 4.x, GNU Textutils and others.
On single partition systems and the Boot ISO, the AROS Developer environment is installed under "SYS:Development/". Systems with multiple partitions - such as a Work: partition - tend to install it to there instead, however it can be installed manually to any location. Please remember, if moving, that you will need to correct the Development packages 'install location' env variable to point to the new locations root - look in SYS:S/startup-sequence.
<pre>
Assign Development: SYS:Development
Assign C: Development:bin ADD
</pre>
In the aros build instructions. you need to check out contrib and/or ports into your AROS source directory, as subdirs. then, assuming you are building in an external build dir, as you should, you simply configure and "make contrib" for instance or whatever submodule you might want to build.
===Beginners Tutorials in C C++===
As AROS is [http://eab.abime.net/showthread.php?t=29856 C based] API compatible to AmigaOS 3.x, so most of the information on programming C on the Amiga applies to AROS as well. Please note that there is a lot of AmigaOS 1.3 (1985-1989) and [https://www.markround.com/amigaguide AmigaOS AOS 2.x (1990-1992)] information around but OS3.1 is recommended but limited in amount.
Brief overview of what is required to write AROS Applications
# Using [[Aros/Developer/Docs/Libraries/Intuition|Intuition]] for basic screens/windows
# Using graphics within windows via 8bit [[Aros/Developer/Docs/Libraries/Graphics|graphics]] and so onto 15-16-24bit [[Aros/Developer/Docs/Libraries/CGFX|cybergraphx]]
# Load and save work to [[Aros/Developer/Docs/Libraries/DOS|dos]] disk drives
# Using the [[Aros/Developer/Zune|ZUNE GUI Environment]]
Writing native games require this extra information
# Using [[Aros/Developer/AHIDrivers|AHI audio hardware independent API]]
# Using USB joystick/joypad with the Poseidon USB stack through [[Aros/Developer/Docs/Libraries/LowLevel|LowLevel]] library
Additional features that could be added later
# Adding additional [[Aros/Developer/Docs/Libraries/Locale|Locale]] language translations to your program
# Adding a [[Aros/Developer/Docs/Rexx|AREXX/Regina]] port to your application
# Executing Amiga(TM) [[Aros/User/DOS|DOS]] commands from your application
# Using [[Aros/Developer/Docs/Libraries/Icon|icons]] (.info files) and icon tooltypes (stack, version, and program startup options)
# Local couch or IP based SANA2 networking co-op multi player gaming support
Most AmigaOS programming books are nowadays very much out of date as most are from the late 1980s and do not cover later amigaOS releases like 3.1 for example, Rob Peck's book "Programmer's Guide to the Amiga". The Amiga ROM Kernel manuals aka RKMs like Libraries (3rd edition), Devices (), the AmigaDOS manual (3rd edition) and the Style Guide may have their uses. There are some reference examples from AmigaMail and Devcon notes (available again on an Amiga developers CD 2.1).
For Arexx then "The Amiga Programmer's Guide to ARexx" by Eric Giguere, which was published by Commodore is useful as well as an "Arexx Cookbook".
Curly brackets missing - try SHIFT + ALT + 7 or 0.
* Beginners C Guide [http://www.iu.hio.no/~mark/CTutorial/CTutorial.html C Tutorial],
* [http://thecguru.com/ C for beginners],
* [http://fresh2refresh.com/c/c-basic-program/ C programming basics] for students,
* [https://www.edx.org/courses Free Online course] from American Universities
* Reference Amiga [http://amigadev.elowar.com/ API reference].
* AROS based c source can be found [[Aros/Developer/Docs/Examples|here]] and lots of example code can be found inside [https://github.com/aros-development-team AROS sources] themselves and from the contrib section of the archives from [https://github.com/aros-development-team/contrib Aros site], and study the AROS applications source code, e.g. the test programs from the Tests drawer (folder/directory). Take a look at the code of some smaller AROS programs might be a better and more up to date guide. Some old Os3 [http://www.blackfiveservices.co.uk/amiga-c/ here]
When you upload your builds, please write the architecture (like i386-aros, x86_64-aros, etc.) in the archive name
and it is also advisable to write in the field "Requirements" what ABI (ABIv11, ABIv0 or ABIv1)
===Compiling C/C++ Code===
Native, although we have a IDE Integrated Development Environment (Murks), it does lack a debugger. Whilst others use a combination of a text editor and shell to edit code. Most though use an AROS hosted on Linux to take advantage of the better GCC tools like GDB and various IDEs.
Open shell - its a menu option at the top left of Wanderer (desktop). Or by using the right Win key and w (or F12 and w) within the directory with the source code. Type in
sh
to change the amiga shell into a unix shell. You can then type in ls (unix equivalent to amiga dir). Take a look [http://en.wikibooks.org/wiki/Linux_commands here] for more commands.
For a single file program-name.c or program-name.cpp
gcc -o program-name program-name.c
or
g++ -o program-name program-name.cpp
or
g++ -o test -Wall -g main.cc texturelib.cpp xmodelib.cc -lsdl -lgl
To close the shell, click on the top left-hand corner to close (twice). Once to get back the aros shell and then again to close finally. Use [http://freshmeat.net/projects/cksfv/ cksfv] as a test.
Some source code requires the addition of Amiga API libraries, like dos, which you can flag at the compile time as
gcc -o julia.exe julia.c -ldos
For DOS use -ldos as example and if you are compiling mui codes it will be -lmui or intuition -lintuition. Other missing symbols are due to linker libraries being necessary for linking in functions that aren't in the standard C libraries. For example some source code would need added
-lz or -lm or -lpng or -larosc etc.
use this in unix line command mode to search for 'search-item' in many .c files (*.cpp for c++, etc.)
grep -l 'search-item' *.c
If the program is not executable, try using parameter fno-common
"Delete #?.o"? Or if you are using abcshell then "rm *.o"
:''More information: [[Aros/Developer/Porting software]]''
=== How to make Apps have AROS 64-bit specific support code ===
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
AROS64 already uses 64bit addressing, it just doesn't setup the MMU for more than 4GB physical memory currently.
When porting software to AROS64 it is "mostly" a case of converting ULONG's that are used to store pointers, into IPTR's instead, etc. Another quirk, is making sure items on the stack are the correct size by using the STACKED attribute for them.
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
compiling mui stuff for aros setting -std=gnu99 is necessary, had -std=c99 usually
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order.
crash which suggest memory corruption. From my experience porting from 32-bit to 64-bit these kinds of errors can happen if a pointer is passed somewhere via ULONG variable. Then half of the pointer is cut.
To generate this error, please run AROSBootstrap with -m 1024. This will allocate heap to 64-bit address space which will make these errors immediatelly visible. These types of crashes are hard to debug. Disabled as little code as possible to stop corruption from occurring and then try to read from the code where it can be broken
Crashing in tslf_freevec is another symptom of memory corruption and these memory corruptions will manifest differently on different setups.
==Coding conventions==
As the AROS core source is a shared developer experience, there are rules regarding structure and style. When it comes to your creating your own app and coding, the structure and style should be your own, i.e. you should enjoy what you do and do it so that you can understand what is going on.
===Layout===
<syntaxhighlight lang="c">
static void 1st_function()
{
program
exit(0);
}
int main(void)
{
1st_function();
2nd_function();
3rd_function();
return 0;
}
</syntaxhighlight>
<syntaxhighlight lang="c">
struct Screen * openscreen(void);
struct Window *openwindow(struct Screen *screen, const char *title, LONG x, LONG y, LONG w, LONG h);
VOID 1st_function();
VOID 2nd_function();
int main(int argc, char **argv)
{
program
return 0;
} /* main */
VOID 1st_function()
{
}
VOID 2nd_function()
{
}
</syntaxhighlight>
===General style===
This code is used by many people and therefore you should keep some things in mind when you submit source code:
* Keep things simple
* Keep the source clean
* Always know what you are doing, if not flag it and describe what needs to be done...
* Explain clearly/simply what you are doing
* Remember that you write code once but that it is read many times by many people
===Comments===
AROS uses some of the comments in the source to generate the documentation. Therefore it's necessary to keep a certain format so the tools can find their information. Other comments are ignored but they should explain what you thought when you wrote the code. If you really can't think of an explanation, then don't write the code a second time like this:
<pre>
/* This adds 1 to t */
t ++;
</pre>
What we think of is this:
<pre>
/* Go on with next element */
t ++;
</pre>
===Formatting===
This is only '''IMPORTANT''' if you are going to work on the core AROS code or contrib but not applications which may reside outside like on AROS Archives or other websites.
<syntaxhighlight lang="c">
{
/* a */
struct RastPort * rp;
int a;
/* b */
rp = NULL;
a = 1;
/* c */
if (a == 1)
printf ("Init worked\n");
/* d */
if
(
!(rp = Get_a_pointer_to_the_RastPort
(
some
, long
, arguments
)
)
||
a <= 0
)
{
printf ("Something failed\n");
return FAIL;
}
/* e */
a = printf ("My RastPort is %p, a=%d\n"
, rp
, a
);
return OK;
}
</syntaxhighlight>
Looks ugly, eh ? :-) Ok, here are the rules:
<pre>
If several lines contain similar code, put similar things below each other (see a and b);
Put spaces between operands and operators
Put braces {}, brackets [] and parentheses () below each other (d) if there is much code between.
Brackets and parentheses may be in one line if the code between is small (c)
Indent by 4 Spaces. Two indent levels may be abbreviated by one tab.
</pre>
'''Before committing please normalize the indentation - if you have a mixture of tabs and spaced - please always use spaces, 1 tab = 4 spaces.'''
The reasons for this are:
# While some editors can use an arbitrary sizes for tabs, it's a bit complicated to tell another editor which tab size was used by the one used to write the code.
# Most code in AROS was written this way and your code should look like the rest.
# You can print this code on any printer without special tools to "fix" the tabs.
# Most editors have smart tabs which do exactly this. If your editor doesn't, write a bug report.
If you have a function with many arguments (d, e) you should put the parentheses in lines of their own and each argument in one line (d) or put the first argument behind the opening parentheses (e) and each following argument in a line of its own with the comma in front. The closing parentheses is in a line of its own and aligned with the beginning of the expression (i.e. the a and not the opening parentheses or the printf()).
Use a single blank line to separate logical blocks. Large comments should have a blank line before and after them, small comments should be put before the code they explain with only one blank line before them.
If you see any TABS in AROS core sources then the suggestion is to "detab the file and commit that separately" either before or afterwards from making functionality changes. Make two commits instead of one. This makes it easier for others to see the real changes instead of having to dig through multiple lines of irrelevant diffs.
===Eliminating Global Variables===
i.e. pass variables to functions (local scope) or classes making it easier to track and debug your code.
Any time you find that you need a particular thing in 'a lot of different places', chances are that all those places are conceptually related, and so you can create a class, a namespace, a function, or some other higher-level organizational unit to represent that relationship. This makes the program easier to understand.
Bad Designs
* All variables are global.
* There are no standalone functions, only sub-procedures which act on the global variables.
* Every sub-procedure is at least 500 lines to several thousand
* Every sub-procedure has more than one task to perform
* Copy-paste is preferred to writing methods, AND subtle changes are made in the middle of the code
Good Designs
* structure program into functions (C or basic) - top-down procedural approach
* put in class(es) (freepascal or C++) - the object is fixed and you use methods to access the object
<pre>
class String_List
{
private:
list<string> m_List; // member
public:
void read_strings() { /* read strings into m_List */ }
void print_strings() { /* write contents of m_List to stdout */ }
void sort_strings() { /* sort contents of m_List */ }
void sort_strings_reverse() { /* reverse-sort contents of m_List */ }
void unique_strings() { /* remove duplicate strings */ }
};
int main()
{
String_List myList; // local
myList.read_strings();
myList.sort_strings();
myList.print_strings();
myList.sort_strings_reverse();
myList.print_strings();
myList.unique_strings();
myList.print_strings();
return 0;
}
</pre>
This way it is very easy to replace the list with new list for debugging purposes, or replacing the methods without replacing the list, when you want different results. You only have to replace the content of the local variables.
So create the structure that matches your data (linked lists, trees, arrays, etc.) and what to do with them (sorting, searching, etc.)
<pre>
.h usually contain #define #include typedef enum struct extern screen and window definitions (data structures)
.c should contains functions and algorithms
</pre>
One way to look at it is that menu headings act as the .c file and sub-menu headings as functions.
When you start a project, you place a couple of declarations in the include file. As the project continues, you place more and more declarations in the include file, some of which refer to or contain previous declarations. Before you know it, you have a real mess on your hands. The majority of your source files have knowledge of the data structures and directly reference elements from the structures.
Making changes in an environment where many data structures directly refer to other data structures becomes, at best, a headache. Consider what happens when you change a data structure.
Use good variables names to help clarify code and only comment when you need to explain why a certain programming approach was made.
You're Refactoring Legacy Code, you see a global, you want to get rid of it. How do you do this?
Exactly what to do depends on how the global is used. The first step is to find all uses of the global throughout the code, and get a feel for what the significance of the variable is and how it relates to the rest of the program. Pay particular attention to the "lifetime" of the variable (when it gets initialized, when it is first used, when it is last used, how it gets cleaned up). Then, you will probably make the global a data member of a class (for OO languages), or you will write some get/set functions. Converting to the Singleton Pattern is common, but you may discover that it makes more sense for the data element to be a member of an existing singleton, or maybe even an instance variable.
# Create a basic read method, either as a class or a global function. Replace all reads with the access method, but leave the variable defined as a global.
# Review each of the writes to the method and extract action functions one at a time. Unless two operations are coded identically in the original code, extract each write access separately.
# Change the variable scope from global to local.
# Analyze similar action functions to determine if any can be merged, i.e., there are no functional differences in the results of the function, just differences in the implementation details.
# Review the calls to the read method and see if a more complex functionality should be applied. Follow the approach for writes and unless implementations are identical, create separate access functions.
# Analyze the access functions for duplication.
As returning variables by "passing by value" are forgotten, so "passing by reference" is often used instead. The reference is a pointer to the variable so the value is remembered when returned.
Alternatives
* Hidden Globals
* Singleton Pattern
* Database or TupleSpace
* Context Object
* Dependency Injection
* Stateful Procedures
==AROS/AmigaOS APIs and Docs==
<pre>
Library:
- Private data structure
- Many public access methods
Device:
- Private data structure
- Two (BeginIO/AbortIO) access methods
Resource:
- Public data structure
- *NO* access methods
</pre>
And, being Amiga OS-compatible, there are exceptions to all of these.
===System Libraries===
The [http://aros.sourceforge.net/documentation/developers/app-dev/index.php AROS Guide To Libraries] can be used as a guide to individual commands and Old Dev Docs are used in application programming.
The generated [http://aros.sourceforge.net/documentation/developers/autodocs/ Aros AutoDocs HTML Read] or download [http://aros.sourceforge.net/download.php docs-html.bz2 from here].
Amiga/Aros styles libraries are very different from windows and linux libs. Typical .so/dll libraries are foreign to most Amiga-like OS
*[[Aros/Developer/Docs/Libraries/AROSC|arosc.library]]
*[[Aros/Developer/Docs/Libraries/AmigaGuide|amigaguide.library]]
*[[Aros/Developer/Docs/Libraries/ASL|asl.library]]
*[[Aros/Developer/Docs/Libraries/Bullet|bullet.library]]
*[[Aros/Developer/Docs/Libraries/BSDsocket|bsdsocket.library]]
*[[Aros/Developer/Docs/Libraries/CAMD|camd.library]]
*[[Aros/Developer/Docs/Libraries/Codesets|codesets.library]]
*[[Aros/Developer/Docs/Libraries/CGFX|cybergraphics.library]]
*[[Aros/Developer/Docs/Libraries/CGXVIDEO|cgxvideo.library]]
*[[Aros/Developer/Docs/Libraries/Commodities|commodities.library]]
*[[Aros/Developer/Docs/Libraries/DataTypes|datatypes.library]]
*[[Aros/Developer/Docs/Libraries/DiskFont|diskfont.library]]
*[[Aros/Developer/Docs/Libraries/DOS|dos.library]]
*[[Aros/Developer/Docs/Libraries/Exec|exec.library]]
*[[Aros/Developer/Docs/Libraries/Expansion|expansion.library]]
*[[Aros/Developer/Docs/Libraries/FreeType2|freetype.library]]
*[[Aros/Developer/Docs/Libraries/GadTools|gadtools.library]]
*[[Aros/Developer/Docs/Libraries/Graphics|graphics.library]]
*[[Aros/Developer/Docs/Libraries/Icon|icon.library]]
*[[Aros/Developer/Docs/Libraries/Identify|identify.library]]
*[[Aros/Developer/Docs/Libraries/IFFParse|iffparse.library]]
*[[Aros/Developer/Docs/Libraries/Intuition|intuition.library]]
*[[Aros/Developer/Docs/Libraries/Keymap|keymap.library]]
*[[Aros/Developer/Docs/Libraries/Layers|layers.library]]
*[[Aros/Developer/Docs/Libraries/Locale|locale.library]]
*[[Aros/Developer/Docs/Libraries/LowLevel|lowlevel.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingBas|mathieeesingbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubBas|mathieeedoubbas.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEESingTrans|mathieeesingtrans.library]]
*[[Aros/Developer/Docs/Libraries/MathIEEEDoubTrans|mathieeedoubtrans.library]]
*[[Aros/Developer/Docs/Libraries/Mathtrans|mathtrans.library]]
*[[Aros/Developer/Docs/Libraries/MUIMaster|muimaster.library]]
*[[Aros/Developer/Docs/Libraries/Partition|partition.library]]
*[[Aros/Developer/Docs/Libraries/PopUpMenu|popupmenu.library]]
*[[Aros/Developer/Docs/Libraries/OOP|oop.library]]
*[[Aros/Developer/Docs/Libraries/Regina|regina.library]]
*[[Aros/Developer/Docs/Libraries/Reqtools|reqtools.library]]
*[[Aros/Developer/Docs/Libraries/RexxSysLib|rexxsyslib.library]]
*[[Aros/Developer/Docs/Libraries/ScreenNotify|screennotify.library]]
*[[Aros/Developer/Docs/Libraries/TTEngine|ttengine.library]]
*[[Aros/Developer/Docs/Libraries/Thread|thread.library]]
*[[Aros/Developer/Docs/Libraries/Utility|utility.library]]
*[[Aros/Developer/Docs/Libraries/Xadmaster|xadmaster.library]]
*[[Aros/Developer/Docs/Libraries/Workbench|workbench.library]]
*[https://github.com/aros-development-team/AROS/commit/c82e86b8480277998014cc327b56c7664023a52f ClassAct Reaction boopsi class]
===AROS Subsystems===
# [[Aros/Developer/Zune|Zune MUI compatible GUI]]
# [[Aros/Developer/AROSAppPackages|AROS Application Packages]]
# AHI Audio Drivers - [[Aros/Developer/AHIDrivers|Usage]]/[[Aros/Developer/AHIDriversDev|Development]]
# AROSTCP Sana2 Network Interface Drivers - [[Aros/Developer/NICDrivers|Usage]]/[[Aros/Developer/NICDriversDev|Development]]
# [[Aros/Developer/AmiSSL|AmiSSL]]
# gfx.hidd/cybergraphics Video Drivers - [[Aros/Developer/GfxDrivers|Usage]]/[[Aros/Developer/GfxDriversDev|Development]]
# IO Device Drivers - [[Aros/Developer/IODeviceDrivers|Usage]]/[[Aros/Developer/IODeviceDriversDev|Development]]
# USB Device Drivers - [[Aros/Developer/USBDrivers|Usage]]/[[Aros/Developer/USBDriversDev|Development]]
# PCI Device Drivers - [[Aros/Developer/PCIDrivers|Usage]]/[[Aros/Developer/PCIDriversDev|Development]]
# [http://www.libsdl.org/ SDL]
# [[w:Gallium3D|Gallium 3D]] [http://www.mesa3d.org/ openGL aka Mesa] - [[Aros/Developer/OpenGL|Usage]]/[[Aros/Developer/OpenGLDev|Development]] [http://www.swiftless.com/opengltuts.html Swfitless]
# A small subset of GTK2 through [http://sourceforge.net/projects/gtk-mui/ MUI-GTK]
# Cairo 2D Engine - [[Aros/Developer/Cairo|Usage]]/[[Aros/Developer/Cairo|Development]]
# [[Aros/Developer/Scalos|Scalos desktop API and plugin modules]]
# [[Aros/Developer/VHI|VHI video driver]]
====HIDDs====
*[[Aros/Developer/Docs/HIDD/HIDDClass|hiddclass.hidd]]
*[[Aros/Developer/Docs/HIDD/Graphics|graphics.hidd]]
*[[Aros/Developer/Docs/HIDD/VesaGfx|vesagfx.hidd]]
*[[Aros/Developer/Docs/HIDD/ATI|radeon.hidd]]
*[[Aros/Developer/Docs/HIDD/NVidia|nvidia.hidd]]
*[[Aros/Developer/Docs/HIDD/Nouveau|nouveau.hidd]]
*[[Aros/Developer/Docs/HIDD/Kbd|kbd.hidd]]
*[[Aros/Developer/Docs/HIDD/Mouse|mouse.hidd]]
*[[Aros/Developer/Docs/HIDD/i2c|i2c.hidd]]
*[[Aros/Developer/Docs/HIDD/IRQ|irq.hidd (deprecated)]]
*[[Aros/Developer/Docs/HIDD/PCI|pci.hidd]]
*[[Aros/Developer/Docs/HIDD/PCIPC|pcipc.hidd]]
*[[Aros/Developer/Docs/HIDD/Serial|serial.hidd]]
*[[Aros/Developer/Docs/HIDD/Thunderbolt|thunderbolt.hidd]]
https://github.com/aros-development-team/AROS/commit/4f02ea691799aff3a01f60cfa5f9182c82fc57a8
HIDD are used for device/peripheral low level hardware support drivers. The HIDD system is split up into a collection of classes with a strict inheritance hierarchy. A HIDD class implements a device driver for a single device or in rare cases a group of devices and provides an interface for other programs and devices to access.
In order to maintain portability of interfaces across a wide range of hardware this interface will in general not present the raw interface to the underlying hardware. Instead it will present a generic interface that describes many different hardware implementations. This allows for the best reuse of both interfaces and code.
HIDD API is heavyweight though. You need to open a HIDD library, open oop.library, instantiate an object (even if there's no object); and object calls are more costly compared to plain library calls.
Basically your task is to implement a subclass of hidd.ata.bus for your hardware. just implementing the XXXATA__Hidd_ATABus__xxxxxx methods for the Amiga chipset - and appropriate versions of the interface_xxx.c file(s). pretty much everything in probe.c could be ignored - just write a replacement scan for relevant amiga devices and store whatever info you need in the bus data? only the "SUPPORT_LEGACY" blocks might be related.
You do not need to depend on PCI API. PCI is just a way to discover the hardware on PCs, etc.
<hidd/pci.h> includes (at some depth) <interface/HW.h>, which defines IID_HW. This comes from the 'generic' HIDD class in:
rom/hidds/hidd/hiddclass.conf
did not split up HIDD and HW because they are always used in pair. It's the same as hidd/pci.h bringing definition for: PCI, PCIDriver and PCIDevice. PCI is actually PCIHW, just the name was not changed for backwards compatibility reasons. HW is a 'hub' where HIDD instances plug in.
ATA HIDD aoHidd_ATABus_Use32Bit value is completely ignored unless ata.device first detects correct command line parameter.
Yes. Unfortunately I was unable to find any comment in code or svn history with explanations. Looked at Linux source, there 32-bit PIO is also controller driver's property. Some of them enable it, some don't.
Actually, switching the default to ON should be safe. ata.device is fail-safe at this because during IDENTIFY command it validates upper 16 bits, and if they appear to be zeroes in all 128 longwords, then 32-bit mode is switched off. But, nevertheless, I know how tricky hardware can be, so I decided not to change original behavior. If you think it's wrong in some cases, then it's possible to add one more attribute like aHidd_ATABus_Default32Bit. If set to YES, then this means that 32-bit PIO is safe to use by default.
====Devices====
*[[Aros/Developer/Docs/Devices/ATA|ata.device]]
*[[Aros/Developer/Docs/Devices/Console|console.device]]
*[[Aros/Developer/Docs/Devices/Narrator|narrator.device]]
*[[Aros/Developer/Docs/Devices/Printer|printer.device]]
*[[Aros/Developer/Docs/Devices/Trackdisk|trackdisk.device]]
*[[Aros/Developer/Docs/Devices/AmberRAM|amberram.device]]
*[[Aros/Developer/Docs/Devices/Timer|timer.device]]
*[[Aros/Developer/Docs/Devices/|.device]]
The Amiga used [[Aros/Developer/Docs/Devices|Devices]] to communicate with [http://aros-exec.org/modules/newbb/viewtopic.php?start=0&topic_id=3475&viewmode=flat&order=ASC additional hardware]. AROS has replaced these hardware devices with hidd equivalents but some are still retained for backwards compatibility.
Local libraries/devices/handlers,etc. are supposed to override the ones in ROM if their version is higher than the one in ROM.
Here is the list of commands exec default:
{| class="wikitable"
| CMD_CLEAR
| Purge the buffer of the device
|----
| CMD_READ
| Playback Control
|----
| CMD_STOP
| Stopped the activity of the device
|----
| CMD_FLUSH
| Empty the queue of commands
|----
| CMD_RESET
| Reset a device
|----
| CMD_WRITE
| Playback Control
|----
| CMD_INVALID
| Create an error
|----
| CMD_UPDATE
| Gets updated device
|----
| CMD_START
| Will restart the device
|----
|}
While most other "stuff you communicate with" in AmigaOS are devices <ref>AMIGA ROM Kernel Reference Manual: Devices, 3rd Edition. Commodore-Amiga, Inc. Addison-Wesley, 1991. {{ISBN|0-201-56775-X}}</ref> that share a [http://gega.homelinux.net/AmigaDevDocs/ common base interface]. [[Aros/Developer/Docs/Devices1.3|OS 1.3 Device Drivers]].
====Handlers====
:[[Aros/Developer/Docs/Handlers/Pipe|pipe.handler]]
:[[Aros/Developer/Docs/Handlers/Port|port.handler]]
:[[Aros/Developer/Docs/Handlers/SFS|sfs.handler]]
:[[Aros/Developer/Docs/Handlers/FAT|fat.handler]]
:[[Aros/Developer/Docs/Handlers/PFS|pfs.handler]]
:[[Aros/Developer/Docs/Handlers/NTFS|fuse.handler]]
:[[Aros/Developer/Docs/Handlers/FFS|ffs.handler]]
filesystem handlers have their own separate system consisting of completely differently structured messages that dos.library use to pass requests (for things like reading, writing, getting directory contents etc.) to them. AROS originally went with implementing filesystem handlers as devices, which might arguably be more consistent with the rest of the AmigaOS API but which is quite incompatible with AmigaOS itself. However, it made it far harder to port filesystems and the gains were comparatively small, and so there's been a long standing goal of fixing this incompatibility. It has now, June 2011, been reintroduced to all AROS flavors.
are argstr and argsize valid for the handler startup environment?
DOS/RunHandler() calls DOS/CreateNewProcTags(), and then CallEntry() (in rom/dos/exit.c) to start the handler, so yes, argstr and argsize are *present* in the call signature of the handler.
Granted, argstr will be NULL and argsize 0, but those values *are* passed to the handler function using:
<pre>
AROS_UFC3(ULONG, entry,
AROS_UFCA(STRPTR, argptr, A0),
AROS_UFCA(ULONG, argsize, D0),
AROS_UFCA(struct ExecBase *, SysBase, A6));
</pre>
Creating your own [without the whole build tree http://pagesperso-orange.fr/franck.charlet/temp/radeon.zip] and then
<pre>
make stub
make
make install
</pre>
SFS has two Root blocks, one at the start and one at the end of the disk. The Root blocks both contain the same information. They hold various information about the disk structure and have the locations of some important blocks used by the filesystem.
The Root ObjectContainer contains the Root directory Object. The name of this Object is the name of the volume. It is identical to a normal directory Object.
The Bitmap is used to keep track of free space. Each bit in a bitmap represents a single block. A set bit indicates a free block and a cleared bit a used block.
AdminSpaceContainers are used to keep track of space which has been reserved for storing administration blocks. Only the Bitmap, the Root blocks and the actual data stored in files aren't stored in administration space. Administration space is allocated in chunks of 32 blocks at a time. A single AdminSpaceContainer can hold information about a large number of such areas each of which has its own little bitmap of 32 bits.
Extents are stored in a B-Tree. The Root block holds a pointer to the root of the Extent B-Tree. Extents keep track of space in use by a specific file. Each fragment a file consists of has its own Extent. Extents are in a double linked list. The list can be used to locate the next or previous fragment of a file.
Below is the standard block header. This header is found before EVERY type of block used in the filesystem, except data blocks. The id field is used to check if the block is of the correct type when it is being referred to using a BLCK pointer. The checksum field is the SUM of all LONGs in a block plus one, and then negated. When applying a checksum the checksum field itself should be set to zero. The checking a checksum the checksum is okay if the result of the checksum equals zero. The ownblock BLCK pointer points to the block itself. This field is an extra safety check to ensure we are using a valid block.
Field Type Description
id ULONG The id field is used to identify the type of block we are dealing with. It is used to make sure that when referencing a block we got a block of the correct type. The id consist of 4 bytes and each blocktype has its own unique foure letter code.
checksum ULONG This field contains the sum of all longs in this block, plus one and then negated. The checksum can be used to check if the block hasn't been corrupted in any way.
ownblock BLCK Points to itself, or in other words, this field contains the block number of this block. This is yet another way to check whether or not a block is valid.
<pre>
struct fsBlockHeader {
ULONG id;
ULONG checksum;
BLCK ownblock;
};
</pre>
The algorithm to calculate the checksum of a block:
<pre>
ULONG calcchecksum(struct fsBlockHeader *block, LONG blocksize} {
ULONG *data=(ULONG *)block;
ULONG checksum=1;
block->checksum=0;
while(blocksize>0) {
checksum+=*data++;
blocksize-=4;
}
return(-checksum);
}
</pre>
A Root block contains very important information about the structure of a SFS disk. It has information on the location and size of the disk, the blocksize used, locations of various important blocks, version information and some filesystem specific settings.
A SFS disk has two Root blocks; one located at the start of the partition and one at the end. On startup the filesystem will check both Roots to see if it is a valid SFS disk. If either one is missing SFS can still continue (although at the moment it won't).
A Root block could be missing on purpose. For example, if you extend the partition at the end (adding a few MB's) then SFS can detect this with the information stored in the Root block located at the beginning (since only the end-offset has changed). Same goes for the other way around, as long as you don't change start and end point at the same time.
When a Root block is missing because the partition has been made a bit larger, then SFS will in the future be able to resize itself without re-formatting the disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
version UWORD The version of the filesystem block structure. You can check this field to identify what version of the filesystem your dealing with it and to see if you can handle this structure correctly. Don't try to interpret the disk's structure when this field contains an unknown version number!
sequencenumber UWORD Used to identify which Root block was written last in case the sequencenumber on both Root blocks don't match.
datecreated ULONG Creation date of this volume. This is the date when the disk was last formatted and will never be changed.
bits UBYTE Various settings, see below.
<pre>
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
reserved1 ULONG[2] Reserved, leave zero.
firstbyteh ULONG High 32-bits of a 64-bit number. This is the first byte of our partition relative to the start of the disk.
firstbyte ULONG Low 32-bits of a 64-bit number.
lastbyteh ULONG High 32-bits of a 64-bit number. This is the last byte (exclusive) of our partition relative to the start of the disk.
lastbyte ULONG Low 32-bits of a 64-bit number.
totalblocks ULONG The total number of blocks this partition consists of.
blocksize ULONG The size of a block of this partition.
reserved2 ULONG[2] Reserved, leave zero.
reserved3 ULONG[8] Reserved, leave zero.
bitmapbase BLCK Block number of the start of the Bitmap.
adminspacecontainer BLCK Block number of the first AdminSpaceContainer.
rootobjectcontainer BLCK Block number of the ObjectContainer which contains the root of the disk (this is where the volume name is stored).
extentbnoderoot BLCK Block number of the root of the Extent B-Tree.
reserved4 ULONG[4] Reserved, leave zero.
</pre>
<pre>
struct fsRootBlock {
struct fsBlockHeader bheader;
UWORD version;
UWORD sequencenumber;
ULONG datecreated;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
ULONG reserved1[2];
ULONG firstbyteh;
ULONG firstbyte;
ULONG lastbyteh;
ULONG lastbyte;
BLCK totalblocks;
ULONG blocksize;
ULONG reserved2[2];
ULONG reserved3[8];
BLCK bitmapbase;
BLCK adminspacecontainer;
BLCK rootobjectcontainer;
BLCK extentbnoderoot;
ULONG reserved4[4];
};
</pre>
AdminSpaceContainers are used to store the location and bitmap of each administration space. The AdminSpaceContainers are located in a double linked list and they contain an array of fsAdminSpace structures. There is one fsAdminSpace structure for every administration space on disk.
Field Type Description
bheader struct fsBlockHeader Standard block header.
next BLCK The next AdminSpaceContainer, or zero if it is the last in the chain.
previous BLCK The previous AdminSpaceContainer, or zero if it is the first AdminSpaceContainer.
bits UBYTE The number of bits in each in the bits ULONG in the fsAdminSpace structure.
pad1 UBYTE Reserved, leave zero.
pad2 UWORD Reserved, leave zero.
adminspace struct fsAdminSpace An array of fsAdminSpace structures. The size of the array is determined by the current blocksize.
<pre>
struct fsAdminSpaceContainer {
struct fsBlockHeader bheader;
BLCK next;
BLCK previous;
UBYTE bits;
UBYTE pad1;
UWORD pad2;
struct fsAdminSpace adminspace[0];
};
</pre>
Field Type Description
space BLCK The first block of an administration space.
bits ULONG A small bitmap which is used to determine which blocks in an administration space are already in use. The number of bits in this bitmap is determined by the bits field in the AdminSpaceContainer.
<pre>
struct fsAdminSpace {
BLCK space;
ULONG bits;
};
</pre>
The fsBitmap structure is used for Bitmap blocks. A bitmap block is used to keep track of which space is in use and which isn't for a particular area of a disk. All bitmap blocks together keep track of the free space for an entire disk. The location of the first bitmap block is known and all other bitmap blocks are stored in order after the first one.
Field Type Description
bheader struct fsBlockHeader Standard block header.
bitmap ULONG An array of ULONG's. These hold the actual information on which blocks are in use and which aren't.
<pre>
struct fsBitmap {
struct fsBlockHeader bheader;
ULONG bitmap[0];
};
</pre>
Each bit in a bitmap block (except for the block header) represents a single block. If the bit is set than the block is free, and if the bit is clear then it is full. The first ULONG in the bitmap area of the first bitmap block represents blocks 0 through 31 on the disk. Bit 31 of this ULONG is block 0, 30 is block 1, and so on. Bit 0 of the first ULONG represents block 31.
Below is a table to clarify how bitmaps work even further. The first column is the bitmap block number, the second column is the number of the ULONG in the bitmap array. The third column is the bit number in this ULONG, and the last column is the block which this specific bit, in this specific bitmap block represents.
We'll assume here that a bitmap block has room for 120 ULONG's (meaning there is room for storing 32 * 120 bits).
<pre>
Bitmap block ULONG number Bit number Block represented
1 (first) 0 31 0
1 0 30 1
... ... ... ...
1 0 1 30
1 0 0 31
1 1 31 32
... ... ... ...
1 2 31 64
1 2 30 65
... ... ... ...
1 119 0 3839
2 0 31 3840
2 0 30 3841
... ... ... ...
</pre>
The last bitmap block doesn't need to be completely used. The unused bits (which belong to blocks which do not exist) all have to be clear, to indicate that these blocks are in use.
The fsObjectContainer structure is used to hold a variable number of fsObjects structures (Objects) which have the same parent directory. Each ObjectContainer must contain at least one Object. If there is space in the ObjectContainer not used by the variable number of Objects then that space is zero filled. Objects always start at 2-byte boundaries, which means sometimes a padding byte is inserted between two Objects.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the parent Object, or 0 if this object has no parent (which is only the case for the Root directory).
next BLCK The next ObjectContainer belonging to this directory, or zero if it is the last in the chain.
previous BLCK The previous ObjectContainer belonging to this directory, or zero if it is the first ObjectContainer in this directory.
object struct fsObject A variable number of fsObject structures. The number of structures depends on the individual sizes of each fsObject structure and the blocksize. These structures are located directly after each other with at most 1 byte of padding between them to get the structures aligned on a 2 byte boundary.
<pre>
struct fsObjectContainer {
struct fsBlockHeader bheader;
NODE parent;
BLCK next;
BLCK previous;
struct fsObject object[0];
};
</pre>
fsHashTable is the structure of a HashTable block. It functions much like the hash table found in FFS user directory blocks, except that it is stored in a separate block. This block contains a number of hash-chains (about 120 for a 512 byte block). Each hash-chain is a chain of Nodes. Each Node has a pointer to an Object and a pointer to the next entry in the hash-chain. Using such a hash-chain you can locate an object quickly by only knowing its name.
Field Type Description
bheader struct fsBlockHeader Standard block header.
parent NODE The node number of the directory Object this HashTable block belongs to.
hashentry NODE An array of Nodes. Each Node represents the start of a hash-chain (singly linked). A hash-value is calculated using the name of a file or directory, and this value determines in which chain the Object is linked. If there are no entries in a hash-chain then the hashentry value is zero.
<pre>
struct fsHashTable {
struct fsBlockHeader bheader;
NODE parent;
NODE hashentry[0];
};
</pre>
To calculate the hash-value using a name of an Object as input use these routines:
<pre>
UWORD calchash(UBYTE *name) {
UWORD hash=0;
/* Calculates a hash value over the passed in string.
The end of the string can be either a NUL byte or a
slash. The hash function is the same as the one
used in FastFileSystem set to international mode. */
while(name[hash]!=0 && name[hash]!='/') {
hash++;
}
while(*name!=0 && *name!='/') {
hash=hash*13+upperchar(*name++);
}
return((UWORD)(hash % (UWORD)((blocksize-sizeof(struct fsHashTable))>>2)));
}
UBYTE upperchar(UBYTE c) {
if((c>=224 && c<=254 && c!=247) || (c>='a' && c<='z')) {
c-=32;
}
return(c);
}
</pre>
The BNodeContainer is used to store B-Trees. Currently only one B-Tree is in use by this filesystem and it is used to store the location of file data. The fsBNodeContainer structure contains two other structures. The fsBlockHeader structure and the BTreeContainer structure.
Field Type Description
bheader struct fsBlockHeader Standard block header.
btc struct BTreeContainer Contains information about the B-Tree and its nodes contained in this block.
<pre>
struct fsBNodeContainer {
struct fsBlockHeader bheader;
struct BTreeContainer btc;
};
</pre>
First try and locate the Root block. It should start with "ROOT". SFS has two of these, one at the start of the partition and one at the end. One of the fields contains the block size, which will be the size of all important SFS blocks.
The root block has the root object container, which contains information about files and directories in the root directory. The object
containers basically hold one or more smaller structures that represent files and directories. Scanning them all should give you a list of
files and directories.
The root block also has the root of the Extent B-Tree. This is a standard B-Tree structure (not a binary tree) that is used commonly in
all kinds of system, you can read about how they work on Wikipedia if needed. The B-Tree holds the information about *where* all the data is
located for your files.
To recover your files, I'd do this:
* Find one of the root blocks, if not present, then figure out the block size your disk was using, and scan every block in turn to see if it
looks like an ObjectContainer (check the fsBlockHeader's ID, check if the ownblock number is equal to the block you are currently scanning,
and check its checksum). So if you currently have block 12, and you see a block with the correct id, and ownblock = 12 and its checksum is good,
then that's probably a valid ObjectContainer.
* With all the ObjectContainers found, you can extract filenames and directory names from these, but also the number of their first data
block (in the field data) and the file size. For small files (less than blocksize) this data block will be enough to recover the data.
For larger files, you might be lucky and all the remaining blocks are found after the first one (if the file was defragmented). You can't be
sure of that though so...
* For larger files, you need to find all the BNodeContainers. You could scan these in the same way you found all the ObjectContainers (look for
blocks with the correct id, ownblock number and checksum).
* With all the BNodeContainers found, you can try looking up the first data block of a file in the B-Tree structure. This is a bit complicated
-- the B-Tree consists of non-leaf nodes (blocks that only contain pointers to other B-Tree blocks), the isLeaf flag indicates this. Or it
can be a B-Tree leaf block. The leaf blocks contain extra information per entry (see https://hjohn.home.xs4all.nl/SFS/extents.htm)
<pre>
struct fsExtentBNode {
ULONG key;
ULONG next;
ULONG prev;
UWORD blocks;
};
</pre>
The key should be a block of a file (the first of a range), that is 1 to 65535 block long (depending the "blocks" field). If the file is split
up into more parts, then "next" will contain block number of the next range of blocks. You need to look this up again in the B-Tree
structure to find out how large it is.
You can for the most part ignore the other structures (bitmap, admin containers). The fsObjects and B-tree containers is what you'll need to
recover the data.
====Resources====
<pre>
rom/storage/mmakefile.src
rom/storage/storage.conf
rom/storage/storage_device.c
rom/storage/storage_ids.c
rom/storage/storage_init.c
rom/storage/storage_intern.h
rom/storage/storage_mount.c
rom/storage/storage_unit.c
</pre>
<pre>
rom/storage/includes/device.h
rom/storage/includes/unit.h
rom/storage/includes/volume.h
rom/storage/storage_intern.h
</pre>
<pre>
</pre>
*[[Aros/Developer/Docs/Resources/ACPI|acpi.resource]]
*[[Aros/Developer/Docs/Resources/Battclock|battclock.resource]]
*[[Aros/Developer/Docs/Resources/Bootloader|bootloader.resource]]
*[[Aros/Developer/Docs/Resources/Cia|cia.resource]]
*[[Aros/Developer/Docs/Resources/Filesystem|FileSystem.resource]]
*[[Aros/Developer/Docs/Resources/Hostlib|hostlib.resource]]
*[[Aros/Developer/Docs/Resources/Kernel|kernel.resource]]
*[[Aros/Developer/Docs/Resources/Misc|misc.resource]]
*[[Aros/Developer/Docs/Resources/Processor|processor.resource]]
==Debugging Code==
Please use the [http://sourceforge.net/tracker/?group_id=43586&atid=439463 AROS Bug Tracker] if any issues are found.
GRUB Command line list
<pre>
sysdebug
usbdebug - allows to see Poseidon's log in debug output
</pre>
How do I get debugging out of InitResident ? If running i386 hosted on linux sysdebug=initresident on command line.
This way you can enable any of listed flags. sysdebug=all stands for "everything"
Have an executable (crosscompiled C++ code) which has 6 MB size on disk, but after loading it in memory, 250 MB RAM is taken. Any software that would split AROS executable into ELF part which would show actual size values?
readelf -S executable
it will show you all sections in elf file, including sizes and requested alignment.
objdump -h filename
That's will give you a quick overview of the sections and sizes. Ignore all the .debug.* sections.
Would hazard a guess that you have a large .bss section. That's pretty common in C++.
Next step:
nm—size-sort filename | grep ' [bB] '
The last few will be your biggest consumers. Would suggest -C to demangle the symbols... ;)
Suggest profiling the program (just use some printf's in the main loop for time spent in each part), it usually is quite easy to spot slow parts in games or apps.
If someone has '#define IPTR ULONG' somewhere. To see where that define is, redefine IPTR in the source code that fails, just above the line that fails, and the preprocessor will tell you where it was defined first.
===How to setup gdb with AROS/hosted===
Download AROS sources (AROS-xxxxxxxx-source.tar.bz2, where xxxxxxxx is the current date) and AROS contrib sources (AROS-xxxxxxxx-contrib-source) from
Untar-bzip2 and cd to the unpacked archive directory.
> tar -xvjf AROS-xxxxxxxx-source.tar.bz2
> cd AROS-xxxxxxxx-source
Check the link to "contrib" (contrib-source) inside directory, e.g. correct like this:
> rm contrib
> ln -s ../AROS-xxxxxxxx-contrib-source.tar.bz2 contrib
Make sure you have the correct locale setting, otherwise compilation will fail at some point. See [http://aros.sourceforge.net/documentation/developers/compiling.php#setting-the-locale-to-iso8859 here] (or link below) for more on that. You might have to enter this:
> export LANG="en_US.ISO-8859-1"
Now configure for a debug build - see "./configure --help" for more - here are two examples:
> ./configure—enable-debug=stack,modules,symbols
> ./configure—enable-debug=all
You may "make" now, or choose a separate directory for your build (e.g. for easy removal), for example if compiling for i386 architecture you could create a directory like this:
> mkdir linux-i386
> cd linux-i386
> ../AROS/configure—enable-debug=stack,symbols,modules
When done configuring you're ready to go:
> make
Building AROS takes some time - minutes on fast machines (e.g. 2.5 GHz quadcore), up to hours on slower machines.
The result will be AROS Linux hosted with gdb debugging enabled.
See aros.org documentation for more on compiling AROS, including more [http://aros.sourceforge.net/documentation/developers/compiling.php --enable-debug] options.
When finished, enter bin/linux-i386/AROS directory (replace "linux-i386" with your compilation target platform, e.g. linux-x86_64, etc.) inside the unpacked archive directory. This directory contains the required .gdbinit file for properly running AROS inside gdb.
> cd bin/linux-i386/AROS
Run AROS (here: with 128MB of memory) from gdb:
> gdb—args boot/aros-unix -m 128
or
> gdb—args boot/arosboot -m 128
(gdb) r
Watch the shell output - in case AROS complains about "LoadKeyCode2RawKeyTable: Loading "DEVS:Keymaps/X11/keycode2rawkey.table" failed!" you should also see some instructions on how to create a keymap table. (see link above "more on compiling", too.)
Quit gdb, and try default keymap table:
(gdb) q
The program is running. Quit anyway (and kill it)? (y or n) y
> cd ../../..
> make default-x11keymaptable
Re-run AROS, as described above. Try e.g. RAros (= right windows key) + W to open a shell. If this doesn't work you have to create a keymap table yourself, quit gdb again, and make a new keytable:
> make change-x11keymaptable
A window will open. Watch the window's title bar, and follow the instructions.
When done, re-run AROS. RAros + W should now open a shell.
Next, compile your program with gdb support.
When you start GDB is there a warning which says
warning: File "<whatever>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to ...
If so start gdb with "-ix .gdbinit"
<pre>
Summary - In short:
* build AROS with debugging support (i.e. ./configure --enable-debug=all)
* build your application with debugging support (i.e. option -g)
* run AROS in the GNU debugger (you may use the GUI frontend "ddd" which simplifies usage a bit)
* start your application
* use the commands "findaddr" and "add-symbol-file" as written in the debugging manual
* if the debugger doesn't find the source code of your application use the "dir" command of the debugger.
</pre>
===How to use gdb===
In AROS open a shell, then (in host shell) use CTRL-Z to go into gdb. Use "b Exec_CreatePool" (one of the functions used early on by startup code in programs) to add a breakpoint, then "cont" and gdb will interrupt somewhere early during startup of "program". Use "bt" to show backtrace and "loadseg" for "??" entries. One of them will be for "program". After that you can use "disassemble program".
One thing you need to make sure is that .gdbinit you have in your build directory is the same as in source tree. It has been modified some time ago, but the build system does not refresh it - you need to copy it manually
To recap, please read our debugging [http://aros.sourceforge.net/documentation/developers/debugging.php manual]:
To detect segfaulting when loading, try...
./configure—enable-debug—with-optimization="-O2"
Because crash or no crash may depend on optimization. For newer compilers maybe this helps...
--with-optimization=-"-O2 -fno-strict-aliasing"
One way to make crashes less random (more easily reproducible) is to activate the munging of free memory in rom/exec/freemem.c which is normally commented out:
<pre>
Index: freemem.c
===================================================================
--- freemem.c (revision 34289)
+++ freemem.c (working copy)
@@ -154,11 +154,12 @@
* created with their TCB placed in the tc_MemEntry list. The workaround
* is to avoid munging when FreeMem() is called with task switching disabled.
*/
+
/* DOH! it doesn't work even this way. What's wrong???
- *
- * if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
- * MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
*/
+
+ if ((SysBase->TDNestCnt < 0) && (SysBase->IDNestCnt < 0))
+ MUNGE_BLOCK(memoryBlock, MEMFILL_FREE, byteSize);
}
</pre>
Mungwall can be turned on at runtime. Currently this works in all hosted versions. Just specify "mungwall" on kernel command line and it works. It can work on native too. In order to enable it you need to parse kernel command line, and if "mungwall" is present, set EXECF_MungWall bit in IntExecBase.IntFlags.
This needs to be done before the first AllocMem() for obvious reasons. And never reset back this flag! If you change it on a working system, you are doomed.
Hosted ports do the processing in rom/exec/prepareexecbase.c --enable-debug=mungwall option in configure still works but is going obsolete. A kludge in rom/exec/allocmem.c is responsible for this and it needs to be removed when the transition is done.
BTW, on i386-pc port it can be activated by "mungwall" argument on command line, you don't need to rebuild AROS.
New mungwall affects not only AllocMem()/FreeMem(), but also pools. I also tested it with AllocAbs(), seems to work correctly.
Runtime mungwall works on:
* pc-i386
* pc-x86_64
* linux-i386
* linux-x86_64
* darwin-x86
* linux-ppc
Works on all hosted ports, if the port itself is working.
* amiga-m68k
* Not on sam440-ppc and efika-chrp-ppc, even if they would be able to be built at moment. Does not work on (for now, need NVRAM support)
When starting my freshly rebuilt i386-linux-aros which was compiled with full debugging support I get sometimes the error "Program exited with code 0377". Add the following to your .gdbinit:
set follow-fork-mode child
Here are some of the custom AROS gdb functions (defined in ".gdbinit" file) to resolve "in ?? ()" entries in backtrace:
<pre>
#0 0xb7ffd424 in __kernel_vsyscall ()
#1 0xb7e2a657 in sigsuspend () from /lib/libc.so.6
#2 0xb7c63900 in ?? ()
#3 0xb7c640e3 in ?? ()
#4 0xb7c641e0 in ?? ()
</pre>
You can use
loadseg 0xb7c63900
loadframe 2
or
loadbt
and some others. Use "help " for a little help text. If the commands do not work try "loadkick" first.
Use "thistask", "taskready", "taskwait" to get list of AROS tasks. "bttask " shows backtrace of a task which is in ready or in wait queue and "loadseg" to resolve "??" entries in it's backtrace ("loadframe" would not work as it assume current running task).
===Native debugging tools for AROS===
to enable debugging at boot time entering the GRUB menu editing line (E key) and adding "debug=memory" to your boot line, then press Ctrl+X to complete booting.
SYS:Tools/Debug/'''Bifteck'''
Open a shell and enter the line below to run Biftek and grab the debug messages collected in RAM into a text file.
tools/debug/bifteck > ram:debug.txt
and certainly does not open a window. It is a shell tool and only dumps data located from the debug location.
It is therefore important to 'catch' that debug data as soon as possible (before it gets overridden). You should invoke bifteck at the first opportunity before doing anything else. You can use the TO option to store bifteck output to a file or you can pipe it manually to a file.
SYS:Tools/Debug/'''Sashimi''' - displays error messages
One suggestion is to do a bug() debugging. Each time bug() is executed it will be output on sashimi.
You include <aros/debug.h> and place bug("something\n"); in your source code at location though which control passes.
To get the output - open an aros shell
SYS:Tools/Debug/sashimi > RAM:out.txt
'''Ctrl C''' to end the output to the RAM Disk.
# open shell, and type
# ram: (to switch to ram drive)
# System:Tools/Debug/Sashimi > mylogfile.txt
# open AHI prefs using wanderer (or use another opened shell)
# play test sound
# close AHI prefs
# shell still open with Sashimi running: press ctrl-c to break Sashimi and return to prompt.
# in shell: copy mylogfile.txt System: (or to your required location)
SYS:Utilities/'''Snoopy''' - monitors OS function calls, run "Sashimi" to see Snoopy's output
SYS:Tools/'''WiMP''' - the Window (and Screens) Manipulation Program
You can use the -E option of gcc to find out how preprocessor macros are expanded.
===Errors===
crash in strcasecmp usually means that one of its arguments is NULL.
empty space between these two names, prossibly some invisible character
Old Amiga [http://www.amigacoding.com/index.php?title=Guru_codes&redirect=no Guru Codes]
If the crash is in intuition. Sometimes, if it relates to text, a null pointer sets it off.
an uninitialised pointer can have any address (this is a common fault).
Compiling on 64bit, Many old code would not properly typecast when doing pointer-integer conversions and thus at least throw a warning. This can easily be located and fixed.
[http://www.aros.org/cs/documentation/developers/app-dev/portable.php Portable code]
* Use texteditor or some tool to replace all "ULONG" with "IPTR" and "LONG" with "SIPTR" in the sources.
* Fix (change IPTR/SIPTR back to ULONG/LONG) the few places which really rely on ULONG/LONG being exactly 32 bit. That's for things like pixel (ARGB) buffers, structs written/read to disk, colormaps, but probably not much else.
Then again, many current compilers also throw a warning when you try to assign a pointer value to an integer and the integer is possibly too small. This happens under .NET for example when a 64 bit pointer is assigned to something like an ULONG - so exactly the case which you described.
=== AI ===
#Training learning using 1 or more high end GPUs at least 16GB VRAM per GPU card or 64Gb or more of unified, 16Core CPU with at least 64Gb of RAM system memory, though training can take weeks or more
#Inference with custom asics or GPUs
Alibaba Cloud's [https://huggingface.co/ Qwen] team series of large language models
*[https://huggingface.co/models?other=qwen3 Qwen 3], [],
*[https://huggingface.co/models?other=qwen2 Qwen 2], [https://huggingface.co/Qwen/Qwen2.5-Coder-32B qwen 2.5 Coder],
[https://github.com/sipeed/picoclaw picoclaw]
[https://ollama.com/download Ollama single gpu]
[https://lmstudio.ai/download LMstudio single gpu],
[https://github.com/ggml-org/llama.cpp/releases llama.CPP multi gpus],
[ VLM multiple gpus],
=== Linux ===
<syntaxhighlight lang="c">
/* 1. Header for your name,date,purpose of program.
2. Pre-processor directives. This will include the #includes for files you want to add.
3. Includes for function prototypes if necessary.
4. Main()
Create Pointers for Libraries and any Window you want to open.
5. Open necessary libraries.
6. Check if open exit program if fail.
7. Open a window exit program if fail.
8. Add your program
9. Close Window
10 Close Libraries.
11 End Program. */
/* standard os included headers <.h> */
#include <dos/dos.h>
#include <dos/dosasl.h>
#include <dos/dosextens.h>
#include <dos/exall.h>
#include <dos/rdargs.h>
#include <exec/memory.h>
#include <exec/types.h>
#include <utility/utility.h>
#include <intuition/intuition.h>
/* define as unresolved external references (proto/xxx.h) and compiler will link to auto(matically) open library */
#include <proto/arossupport.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/datatypes.h>
#include <proto/icon.h>
#include <workbench/workbench.h>
#include <workbench/icon.h>
#include <datatypes/pictureclass.h>
#include <proto/muimaster.h>
#include <libraries/mui.h>
#include proto/bsdsocket.h
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* my own headers ".h" */
#define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
#define isDir(fib) ((fib)->fib_DirEntryType >= 0)
#define ARG_TEMPLATE "FILE/A,ALL/S,QUIET/S,W=WIDTH/N,H=HEIGHT/N,M=METHOD,DEFTOOL"
int main(void)
{
return retval;
} /* main */
</syntaxhighlight>
If you used c++, there is not yet c++ support in our shared library system.
The easiest way to create / compile a shared library would be to use the AROS build system but the libraries can be created manually. You have to create a ROMTAG structure and some header files.
A shared library is built with the %build_module macro with a line like this:
%build_module mmake=MetaTarget modname=mylib modtype=library files=SourceFiles
This macro can build different AROS module types, like devices, Zune classes, HIDDs, etc.
<pre>
##begin config
version 1.0
##end config
##begin functionlist
void func1(LONG a, LONG b)
int func2(char *s, ULONG a)
##end functionlist
</pre>
There is more [http://aros.sourceforge.net/documentation/developers/sys-dev/libraries.php here]
Alternatively,
<pre>
#ifndef LIB_H
#define LIB_H
#define __NOLIBBASE__
#include <exec/libraries.h>
#include <exec/semaphores.h>
#include <dos/dos.h>
#ifdef __AROS__
//#include <aros/debug.h>
#define reg(x)
#define __saveds
#endif
#define USESYSBASE struct ExecBase *SysBase = Base->My_SysBase;
struct MyTestBase
{
struct Library My_Test_Lib;
struct ExecBase *My_SysBase;
APTR My_SegList;
int testint;
};
#endif
</pre>
<pre>
/*--------------------------------------------------------------------------*/
/* Resident header written for mytest.library */
/*--------------------------------------------------------------------------*/
#define __NOLIBBASE__
#define VERSION 1
#define REVISION 0
#define LIBHEADNAME mytest
#define LIBHEADNAMESTR "mytest"
#define COMPDATE "04.10.2015"
#define VERS "1.0"
#define LIBBASETYPE struct MyTestBase
#define LIBBASETYPEPTR LIBBASETYPE *
#include <aros/debug.h>
#include <exec/exec.h>
#include <proto/exec.h>
#include <exec/resident.h>
#include <exec/nodes.h>
#include <exec/libraries.h>
#include <aros/symbolsets.h>
#include "lib.h"
const UBYTE lib_name[] = LIBHEADNAMESTR ".library";
const UBYTE lib_id[] = "$VER: " LIBHEADNAMESTR ".library " VERS " (" COMPDATE ") by ALB42\n";
extern const APTR FuncTable[];
AROS_UFP3 (LIBBASETYPEPTR, InitLib,
AROS_UFPA(LIBBASETYPEPTR, Base, D0),
AROS_UFPA(BPTR, seglist, A0),
AROS_UFPA(struct ExecBase *, sysbase, A6)
);
static struct LibInitStruct
{
IPTR LibSize;
const APTR *FuncTable;
const struct DataTable *DataTable;
APTR InitFunc;
}
const LibInitStruct =
{
sizeof(LIBBASETYPE),
FuncTable,
NULL,
(APTR)InitLib
};
const struct Resident romtag =
{
RTC_MATCHWORD, /* match word */
(APTR)&romtag, /* back pointer */
(APTR)(&romtag + 1), /* skip pointer */
RTF_AUTOINIT | RTF_EXTENDED,/* flags */
VERSION, /* version */
NT_LIBRARY, /* type of module */
0, /* init priority */
(STRPTR)lib_name, /* module name */
(STRPTR)lib_id + 6,
(APTR)&LibInitStruct,
REVISION, NULL
};
AROS_UFH3 (LIBBASETYPEPTR, InitLib,
AROS_UFHA(LIBBASETYPEPTR, Base, D0),
AROS_UFHA(BPTR, seglist, A0),
AROS_UFHA(struct ExecBase *, sysbase, A6)
)
{
AROS_USERFUNC_INIT
Base->My_SegList = seglist;
Base->My_SysBase = (APTR)sysbase;
Base->testint = 0;
USESYSBASE
bug("InitLib\n");
if (!set_open_libraries())
{
set_close_libraries();
return NULL;
}
return Base;
AROS_USERFUNC_EXIT
}
AROS_LH1(LIBBASETYPEPTR, LibOpen,
AROS_LHA (ULONG, version, D0),
LIBBASETYPEPTR, Base, 1, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibOpen\n");
(void)version;
Base->My_Test_Lib.lib_OpenCnt++;
return Base;
AROS_LIBFUNC_EXIT
}
__saveds APTR LibExpungeInternal(LIBBASETYPE *Base reg(a6))
{
USESYSBASE
APTR seglist;
bug("LibExpungeInternal\n");
if (Base->My_Test_Lib.lib_OpenCnt)
{
return 0;
}
seglist = Base->My_SegList;
Forbid();
Remove((struct Node*)Base);
Permit();
FreeMem((APTR)Base - Base->My_Test_Lib.lib_NegSize, (LONG)Base->My_Test_Lib.lib_PosSize +
(LONG)Base->My_Test_Lib.lib_NegSize);
set_close_libraries();
return seglist;
}
AROS_LH0(BPTR, LibClose,
LIBBASETYPEPTR, Base, 2, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibClose\n");
if (!(--Base->My_Test_Lib.lib_OpenCnt))
{
return LibExpungeInternal(Base);
}
return 0;
AROS_LIBFUNC_EXIT
}
AROS_LH1(BPTR, LibExpunge,
AROS_LHA(LIBBASETYPEPTR, Base, D0),
struct ExecBase *, sysBase, 3, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
(void)sysBase;
USESYSBASE
bug("LibExpunge\n");
return LibExpungeInternal(Base);
AROS_LIBFUNC_EXIT
}
AROS_LH0(LIBBASETYPEPTR, LibReserved,
LIBBASETYPEPTR, Base, 4, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("LibReserved\n");
return 0;
//return (APTR)LibReserved();
AROS_LIBFUNC_EXIT
}
// Space for your own functions
// do not forget to update the FuncTable as well
AROS_LH1(int, TestFunction,
AROS_LHA(int, TestValue, D0),
LIBBASETYPEPTR, Base, 5, LIBHEADNAME
)
{
AROS_LIBFUNC_INIT
USESYSBASE
bug("TestFunction\n");
Base->testint = TestValue + Base->testint;
return Base->testint;
AROS_LIBFUNC_EXIT
}
// Functable -> Table of all functions in the Library, in right order - important!
const APTR FuncTable[] =
{
&AROS_SLIB_ENTRY(LibOpen,LIBHEADNAME,1),
&AROS_SLIB_ENTRY(LibClose,LIBHEADNAME,2),
&AROS_SLIB_ENTRY(LibExpunge,LIBHEADNAME,3),
&AROS_SLIB_ENTRY(LibReserved,LIBHEADNAME,4),
&AROS_SLIB_ENTRY(TestFunction,LIBHEADNAME,5),
(void *)-1
};
// AutoInit stuff
void *__PROGRAM_ENTRIES__symbol_set_handler_missing;
void *__LIBS__symbol_set_handler_missing;
// end of AutoInitStuff
</pre>
Makefile
<pre>
VPATH =
CFLAGS = -O2 -g -fomit-frame-pointer -W -Wall -Wno-parentheses
CC = i386-aros-gcc
LD = i386-aros-gcc
LDFLAGS = -nostartfiles -Wl,-Map -Xlinker linkermap
LIBS = -lautoinit -llibinit
STRIP = i386-aros-strip --strip-unneeded --remove-section .comment
OBJS = lib_header.o
all: mytest.library
mytest.library: $(OBJS)
$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
lib_header.o: lib_header.c lib.h
clean:
rm -f *.o *.library *.ppu testlibrary linkermap
</pre>
Porting UNIX library to AROS - dealing with static variables which would make it easy to port such libraries to AROS, keeping the benefits of sharing them on disk, but losing the benefit of actually sharing them in memory.
Our problem arises by the fact we want to share the actual code (the .text section of the library) and constant data, but we need to have per-task .bss and .data sections. If we get rid of our intention to share the .text and .rodata sections, things get quite easy: just load and relocate the library whenever it's open, by whoever it's open. It's like statically linking the library into the executable, except that the final linking is done at runtime.
In the V0 branch, in workbench/hidds/hidd.nouveau was committed pcimock.hidd. This is a pci driver that allows mocking real PCI devices under linux-hosted. The main idea is to be able to run the real hardware driver under linux-hosted with as little changes as possible (some changes will always be needed though unless someone wants to write complete device simulator) so that driver's code paths can be executed and debugged using gdb. This was a very helpful capability when porting nouveau. Now it is externalized from nouveau.hidd and can be used by other people porting drivers. The pcimock.hidd can currently mock 4 different nvidia cards, 1 AGP bridge and also mock irq.hidd.
What's the difference between this driver and the pcilinux.hidd? I used that one to develop many different HW drivers for aros. As far as I understood the intention of pcilinux.hidd it is supposed to get access to real hardware that is running under linux. The pcimock.hidd goal is to mock the hardware. For example my dev box is a PCIE system, but I still would like to run the AGP codes paths in nouveau under linux-hosted to check if they don't seg fault. The other case would be to run codes paths for hardware that the developer does not have (Fermi cards in my case). In the case of pcimock.hidd, the AROS driver's code paths will execute as long as you add proper mocking (for example fill in PCI config area or values for registers in BARs). This is an advantage for ported drivers - the code should already work (since it worked on another system) but there might have been mistakes made during porting which can be detected easily with gdb.
In case you are writing your driver from scratch, pcilinux.hidd hidd will give you more advantage, since you can actually access the real hardware from linux-hosted.
== Misc ==
===APL, MPL, BSD, GPL and LGPL Licences===
The majority of AROS sources in licensed under AROS Public License ([http://aros.sourceforge.net/license.html APL]) which (to a degree) protects us from someone taking AROS sources and not contributing improvements back (for example MorphOS took some AROS source and then contributed changes back)
It is written to allow the use of AROS code in other open source or commercial projects without exception whilst providing a mechanism so that improvements/additions can find their way back to the original source in one form or another.
There are "3rd" party applications used by AROS that do not fall under this license, which are an extra "Contrib" download for convenience.
Anyone can port GPL-ed network and sound drivers as AROSTCP and AHI are GPLed. Direct using (porting) [http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL]-ed code in other parts of AROS (gfx, sata, usb) is not possible because AROS license is not compatible with GPL. You need to utilize permissive licensed code like BSD or MIT/X11.
BSD and MPL license are the closest to APL.
APL however is not so compatible with LGPL/GPL.
LGPL case - you cannot statically combine APL code with LGPL. You can, however thank to LGPL being "lesser" restrictive, use LGPL dynamically loaded libraries in APL codes.
GPL case - you cannot combine APL code with GPL in any way if there is no explicit clause by GPLed code authors allowing that. If you do combine APL with GPL in "bad" ways described above - you have a problem (you violate GPL). This problem might result in everything in AROS becoming GPL or everything running or AROS becoming GPL (here I'm not sure really). The other scenario is that you are not allowed to legally distribute such code at all. To be honest I have grasped how to violate GPL, but I'm still no exactly sure what happens when you violate it (but I'm sure it's not anything nice)
GPL software can run on top of non-GPL "system components" (see system components exception of GPL), but the other way around (non-GPL using GPL) leads to problems. This means applications like scout, or Quake III are ok (in the majority of cases).
Theres no reason GPL drivers cannot be ported - but they cant be in AROS's ROM (requires linking APL code with GPL), nor can AROS depend on them (e.g. they must use existing apis).
If they are launched (dynamically linked) by a user action that is allowed. It is also allowed to distribute such binaries together for convenience.
GPL is not about statical or dynamic linking but is about executing process and function calls.
These components - SFS, isapnp, Zune texteditor, AHi, network drivers, freetype, openuirl, BHFormat, Edit and (" dynamically loaded libraries") are LGPL, not GPL. Mesa/Nouveau stuff is MIT. Some user tools are GPL though.
'''AROS (system)'''
* system components (libraries/classes/devices/etc) cannot be GPL as they would propagate GPL to complete system as well as GPL is not compatible with MPL from which APL is based
* system components can be LGPL v2 or a permissive license (MIT/BSD)
* system applications can be anything you like (but still I would prefer APL or permissive so the code can be reused if needed)
'''Contrib:'''
* no rules - contrib does not impact AROS system since nothing in AROS system depends on contrib.
About stealing code: The chances of this happening is exactly the same whether we are APL or GPL. If any closed-source option wanted to do it, there is no one that can validate otherwise. MorphOS has used some AROS codes, but contributed changes back.
The rationale behind APL is that while it guarantees that the original developer will get the improvements back (to a certain degree - file based), the person who uses the codes does not have to open his original codes. BSD does not guarantee that the original developer gets improvements. GPL requires the person using the codes to open his codes as well.
The copyright holders needs to stay - we just need information from them that the codes are available under APL (for example a checked-in file like in case of Poseidon). We don't do transfer of copyrights.
; Ultimately what can and cannot be done is up to the author(s) - not the licence.
===AROS source code tree===
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-trunk.txt
* http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
Found this interesting (non-GPL) licensing 'anomaly' - to keep in mind for distributors.
Programs that lose their license if sold ("non-profit only" licensed):
contrib/aminet/comm/term/TinyTerminal
contrib/aminet/dev/basic/bwBASIC
contrib/aminet/text/edit/xdme
contrib/fish/aroach
contrib/fish/lotto
contrib/fish/shuffle
contrib/fish/touch
+ cdvdfs.
Here is a list of all the GPL/GPLv2/GPLv3 licenses fossology found, what have explicit licenses in their comments.
excluded LGPL, BSD/GPL dual licensed and programs (such as Prefs/Edit and BHFormat)
<pre>
AROS/rom/dbus/include/ AFL_v2.1 ,GPL_v2+ (supposedly AFL < 3 is GPL incompatible)
AROS/workbench/classes/zune/betterstring/include/ GPL_v2+
AROS/workbench/classes/zune/texteditor/include/ GPL_v2+
AROS/workbench/classes/datatypes/gemimage/ GPL_v2+ GPL
AROS/workbench/classes/datatypes/degas/ GPL_v2+
AROS/workbench/libs/openurl/README: GPL
AROS/workbench/network/smbfs/documentation/ GPL_v2
AROS/workbench/network/smbfs/source_code/ GPL_v2+
AROS/workbench/network/stacks/AROSTCP/bsdsocket/kern/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/mmakefile.src conf.h GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/sys/ CMU ,GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/net/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/api/ GPL_v2
AROS/workbench/network/stacks/AROSTCP/bsdsocket/conf/conf.h: GPL_v2
AROS/workbench/network/stacks/AROSTCP/netinclude/net/radix.h: CMU ,GPL_v2
AROS/workbench/devs/AHI/AHI/ GPL_v2+
AROS/workbench/devs/AHI/AddAudioModes/ GPL_v2+ AROS/workbench/devs/AHI/AddAudioModes/COPYING: GPL
AROS/workbench/devs/AHI/Docs/texinfo.tex: GPL_v2+
AROS/workbench/devs/AHI/COPYING: GPL
AROS/workbench/devs/AHI/Drivers/EMU10kx/ GPL_v2+
AROS/workbench/devs/AHI/AHI-Handler/ GPL_v2+
AROS/workbench/devs/networks/rtl8029/ GPL GPL_v2+
AROS/workbench/devs/networks/pcnet32/ GPL GPL_v2+
AROS/workbench/devs/networks/ppp/LEGAL: GPL
AROS/workbench/devs/networks/atheros5000/ GPL_v2+
AROS/workbench/devs/networks/rhine/ GPL_v2+
AROS/workbench/devs/networks/nForce/ GPL_v2+ GPL
AROS/workbench/devs/networks/prism2/ GPL GPL_v2+
AROS/workbench/devs/networks/fec/LEGAL: GPL
AROS/workbench/devs/networks/rtl8139/ GPL GPL_v2+
AROS/workbench/devs/networks/etherlink3/ GPL GPL_v2+
AROS/workbench/devs/networks/intelpro100/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8169/ GPL GPL_v2+
AROS/workbench/devs/networks/emac/ GPL GPL_v2+
AROS/workbench/devs/networks/rtl8168/ GPL GPL_v2+
AROS/workbench/devs/networks/realtek8180/ GPL_v2+
AROS/workbench/devs/networks/via-rhine/via-rhine.c: GPL_v2+
AROS/workbench/devs/networks/via-rhine/ GPL GPL_v2+
AROS/workbench/devs/networks/e1000/ GPL_v2
AROS/workbench/devs/networks/sis900/ GPL GPL_v2+
</pre>
AHI: it has special provisions (COPYING.DRIVERS). The library is LGPL, preferences software is GPL and drivers can be anything without breaking GPL/LGPL.
Network stack: well, we are long overdue for a new, IPv6 enabled network stack anyway, anyone interested? ;) Seriously though it seems like the glue code is GPL and as all the drivers. However some of the drivers are our own code, so they could be relicensed to LGPL.
Same filter as the AROS trunk list. These should all be libraries or plugins - no programs.
<pre>
contrib/regina/utsname.h: GPL_v2+
contrib/mui/classes/nlist/include/default-align.h: GPL_v2+
contrib/mui/classes/nlist/include/amiga-align.h: GPL_v2+
contrib/mui/classes/BWins/include/MUI/BWin_mcc.h: GPL
contrib/mui/classes/BWins/include/BWin_private_mcc.h: GPL
contrib/mui/classes/BWins/COPYING: GPL_v2
contrib/mui/classes/BWins/MCC_BWins.readme: GPL_v2
contrib/mui/classes/thebar/include/default-align.h: GPL_v2+
contrib/mui/classes/thebar/include/amiga-align.h: GPL_v2+
contrib/gfx/libs/wazp3d/LEGAL: GPL
contrib/gfx/libs/wazp3d/Wazp3D.readme: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/soft3d_opengl.c: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.h: GPL
contrib/gfx/libs/wazp3d/Wazp3D-src/Wazp3D.c: GPL
contrib/libs/mpega/ GPL_v2+
</pre>
http://www.evillabs.net/AROS/Audit-2012-03-14/AROS-contrib.txt
===Types===
On AROS following rules apply:
<pre>
1. BYTE/UBYTE is 8bit, WORD/UWORD is 16bit, LONG/ULONG is 32bit, QUAD/UQUAD is 64bit, the types are comparable with stdint types (int8_t, int16_t, int32_t, int64_t)
2. IPTR/SIPTR are integer types large enough to fit pointer, that is sizeof(IPTR) = sizeof(APTR) = 4 on 32bit system, and = 8 on 64bit system
3. ti_Data in TagList is large enough to hold a IPTR/APTR type.
4. never store a pointer in integer of type LONG. It may work (if the pointer has upper 32bits clear), but does not have to. Compiler should warn you about that.
5. If you are unsure about point 4, allocate your memory with MEMF_31BIT flag set. But don't expect that AROS internals will do the same.
</pre>
point 4 is actually important.
* UBYTE/BYTE for 8bit
* UWORD/WORD for 16bit
* ULONG/LONG for 32bit
* UQUAD/QUAD for 64bit
<pre>
UBYTE Unsigned 8 bit integer variable (byte).
BYTE Signed 8 bit integer variable (byte).
UWORD Unsigned 16 bit integer variable (word).
WORD Signed 16 bit integer variable (word).
ULONG Unsigned 32 bit integer variable (longword).
LONG Signed 32 bit integer variable (longword).
FLOAT 32 bit IEEE floating point variable.
UQUAD Unsigned 64 bit integer variable.
QUAD Signed 64 bit integer variable.
DOUBLE 64bit IEEE floating point variable.
BOOL Boolean variable, TRUE and FALSE are also defined in exec/types.h.
VOID Void.
APTR A generic pointer for multiple purposes - Arrays.
STRPTR A pointer to a null-terminated string.
IPTR Really important in AROS, the only way to declare a field that can contain both: an integer or a pointer.
</pre>
if you want to write really portable app, you may be interested in standard datatypes defined in C99: int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, intptr_t, uintptr_t. They are all defined in inttypes.h include file.
In exec/types.h the following short-cuts are typedef'd. They are used often in AROS, so you should nearly always include exec/types.h and soon only they will be removed from sys/_types.h include, all types are now defined in include files named aros/types/xxx.h.
(Preparation for C library split; sys/xxx.h include will only be available there when compiling with POSIX C library)
Compiler specific types, like int and long might change their size. In case of AROS, similar to linux, int remains 32 bit whereas long grows to 64 bits in size.
If you use Amiga-like data types, i.e. BYTE/UBYTE, WORD/UWORD, LONG/ULONG and QUAD/UQUAD or the C99 standard types (uint8_t and so on, see stdint.h include) then you should have less issues to solve than by using types without size guarantee.
Of course, all pointers grow to 64 bytes using 64bit cpu. Most of the code can be just recompiled and will work. In rare cases, where e.g. pointers are casted to integers, a special care must be taken. Especially in the cases, where pointer is casted to LONG/ULONG (this code will break on 64 bit AROS) e.g. '#define IPTR ULONG'.
With compiler delint patches which the majority of them are simple casting issues to make the compiler happy. Notice some of the changes involve introducing double casts. In very recent versions of GCC. Yes, the bulk of the double casts are for converting 32 bit addresses (ie from a 32 bit PCI DMA address register) to a 64 bit pointer. First cast is to IPTR (to expand to 64 bits, and prevent sign extension if the address is above 0x7FFFFFFF), and then to APTR.
ULONG != IPTR except on 32bit .. so if you need to store pointers make sure and use IPTR and not ULONG (which some old code does). For this reason things like Taglist elements are 64bit (since the tag data can be a pointer).
If your passing items on the stack you should use the STACKED attribute to make sure they are correctly aligned (on 64bit all items on the stack are 64bit..)
There is more issues like using "== 0L" causes problems.
===Endian===
*BE
*LE
Use the macros from <endian.h> instead making a guess based upon architecture defines
<pre>
#if _BYTE_ORDER == _BIG_ENDIAN
#elif _BYTE_ORDER == _LITTLE_ENDIAN
#else
+
#error <whatever.h> - Byte order for this architecture is unsupported!
</pre>
===SVN and GIT===
If you want to help develop AROS OS itself, you can
* view current GIT/SVN entries [http://aros.sourceforge.net/ Aros Org website] or [https://github.com/aros-development-team/AROS Github], [https://github.com/ezrec older ezrec mirror], [https://github.com/michalsc/AROS/ older mirror], [https://trac.aros.org/trac/timeline TRAC], [],
* awaiting update [http://repo.or.cz/w/AROS.git git repo], [http://www.ohloh.net/p/aros/commits ohloh] or [https://svn.aros.org/svn/aros/trunk/ svn repo] and access [Git version git://repo.or.cz/AROS.git here],
* deprecated [https://www.gitorious.org/aros/aros/commit/a7fda9e ARIX commits] or [https://gitorious.org/aros/aros GIT old]
If you have SVN access (early 2015 introduced a new SVN server, create a new account at trac aros org) and/or have obtained the source [http://aros.sourceforge.net/download.php AROS site] - you can compile the current build tools/environment using:
> make development
and follow this [http://aros.sourceforge.net/documentation/developers/compiling.php#building procedure] or [https://github.com/apiraino/aros_guide Guide]
https://trac.aros.org/trac#Developing
If you plan on contributing back changes, please post information about such changes first on this [http://mail.aros.org/mailman/listinfo/aros-dev/ mailing list] for more experience developers can validate whether they are correct.
Then there are the nightly build machines. They svn update before the build and run configure as one of the next steps. autoconf might be added to the nightly build scripts.
Our build relies on packages downloaded from Internet (SDL for example) - it always worked this way. The minimal requirement (when just building core AROS) is binutils and gcc. If you build contrib as well, you need many more packages to be downloaded.
https://gitorious.org/aros/aros/commits/crosstools-II
git://gitorious.org/aros/aros.git
Branch crosstools-II there is only one commit on top of ABI_V1
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-x86_64
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-x86_64
</pre>
and
<pre>
../../aros-src/AROS/configure --enable-ccache
--with-portssources=~/aros/Sources --target=pc-i386
--with-aros-toolchain-install=/home/weissms/media/data/aros/test/crosstools/pc-i386
</pre>
build OK.
:''More information: [[Aros/Developer/Maintainer|AROS Maintainer Docs]]''
===SDI Calls===
Integrate the 'SDI'-headers to allow easier porting to all amiga-like platforms.
<pre>
PUTCHARPROTO( PutTheChar, char c, struct SPrintfStream *s )
{
// REAL CODE
}
</pre>
have "SDI_compiler.h" and "SDI_hook.h" included
its more organized like
#include SDI/SDI_hook.h
than
#include SDI_hook.h
option 1 --- i also use when back porting from amiga's..
<pre>
#ifdef __AROS__
#include SDI/SDI_hook.h
#else
#include SDI_hook.h
#endif
</pre>
also
you can add the -i include/sdi/ location if you do not want to add or edit any files.
Defining HOOKPROTO to IPTR name(struct IClass * cl, Object * obj, Msg msg); solved the problem
A MUI application most likely needs only the HOOKPROTOxxx SDI macros. They are compatible with AROS, only the attributes (hook, object attribute) must be given in the right order. examine compiler/include/aros/symbolsets.h (AROS_LIBREQ)
compiling mui stuff for aros setting -std=gnu99 is necessary (i have had -std=c99 most of the time).
===Locale with Flexcat===
Most languages have a locale, but not every app is localized, the only thing needed is to translate the "catalog" files. It is a case of locating the correct catalog and saving the translated version.
For every app that lacks of your language catalog and is localized anyway, you should find (in the sources) files related to locale:
* file.cd = catalog descriptor, contains base msg, with internal language (usually english)
* language.ct = catalog translation, contains every translated msg, indexed as in the file.cd.
Compare with other localized apps... Then, "make my_app-catalogs" should create and install your translated catalogs. ex : for, saying, sys:prefs/wanderer:
on root of AROS sources, type:
"make workbench-prefs-wanderer-catalogs"
then (if you changed the .cd file):
"make workbench-prefs-wanderer"
For apps not localized, you have to adapt their code to support it, if it is possible...
noticed the original .cd file has many (//) strings at the end of any voice, so added them also to the .ct file.
That (//) is only for cd files. I'm highly recommending to use FlexCat for updating ct files, e.g. like this:
flexcat app.cd deutsch.ct newctfile deutsch.ct
You'll get error checking and new entries are marked in the resulting ct file.
When editing .ct files, only change those lines containing translation and perhaps version string, nothing else.
The rest is up to the relevant tool, flexcat. In order to update your translation, type in the following in your shell:
flexcat xyz.cd xyz.ct NEWCTFILE xyz_upd.ct COPYMSGNEW
This way you will not only make sure you have correct translation file but flexcat also pre-fills newly added strings with "*** NEW *** text. Even better tool for checking cd/ct/catalog files is catcheck, but this one is sadly only available for AmigaOS/68k...
Some languages have variations, like portugues from portugal and portugues from brasil differs...
This is the way to go. I will have a look at language files, but basically if those two languages differ you have to do two separated set of translation files, yes.
(you could create a brazilian slang language localization too)
* At system level localization for one language is a dot language file.
(ex: locale:languages/klingon.language)
* At app level localization is a dot catalog file
(ex: locale:catalogs/klingon/system/libs/dos.catalog)
* At sources level, the dot ct file, and "$language" dot cd files and some building framework.
(ex: catalogs/my_app.ct catalogs/klingon.cd catalogs/mmakefile.src support.c support.h)
Please, use Flexcat to generate CT files:
FlexCat wanderer.cd NEWCTFILE=deutsch.ct
Then fill the first 2 lines with something useful:
<pre>
## version $VER: wanderer.catalog 1.1 (9.2.2006)
## language deutsch
</pre>
You can even update the CT-File: (This adds the new strings)
FlexCat wanderer.cd deutsch.ct NEWCTFILE=deutsch.ct
To compile a catalog you only need the .cd file and your translation (.ct file):
FlexCat multiview.cd deutsch.ct CATALOG=MultiView.catalog
[http://murks-ide.svn.sourceforge.net/viewvc/murks-ide/trunk/src/Catalogs/flexcat_linux?revision=100 Linux version of FlexCat]
: [http://aros.sourceforge.net/documentation/developers/app-dev/localization.php#localization-for-non-developers More information]
A script which compares the required version (i.e. the version which an application/module etc. tries to open) with the version of the existing CT files. The result is in this table:
https://github.com/aros-translation-team/translations/wiki/Progress
The following cases are highlighted:
n/a i.e. CT misses at all
version in existing CT file is lower than the required version
It might be a bit difficult to participate if you haven't worked with Git before but alternatively you can send your CT files to our Slack channel.
When the ct file has been generated via flexcat (flexcat keyshow.cd NEWCTFILE=spanish.ct) it has the following header:
---------------------------------------------------------------------------------------------------------------
## version $VER: <name>.catalog <ver>.<rev> (04.01.2021)
## language nolanguage
## codeset 0
;
---------------------------------------------------------------------------------------------------------------
Those values <ver>.<rev> are the version and revision of the CT file for the languaje or are the values of the application being localized?
The <ver> part must match with version which the application tries to open. You can find the value either in the column "Required Version" in the table which I've linked above, our you can look in the git repository. For keyshow it would be https://github.com/aros-translation-team/keyshow. You can find in the file "catalog_version.h" the right version number.
The <rev> part starts for new CT files with 0 and should be increased every time the CT file is updated.
Updated several files and created a few more that were missing on the spanish catalog.
The catalogs are in Git repositories at https://github.com/aros-translation-team
a) You tell me your Github user name. I'll invite you. You can work directly with the Git repositories.
b) You create Github forks of the catalog repositories and create pull requests.
c) You send the CT files to mrustler gmx de
===C Utils Misc===
The AROS source uses at several places the __DATE__ macro to fill the date entry of a $VER tag. Problem is that c:version doesn't understand that date format (e.g. "May 21, 2011"). As a result the output of e.g.
> "version c:shell full" contains "(null)". Is extending the version command to understand the format of __DATE__ the right solution for that problem?
AmigaOs compilers should use __AMIGADATE__ macro or similar form, if it isn't implemented it could be emulated in makefile: -D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\"
BTW. I think DD.MM.YYYY is better format than "Month DD YYY" because "Month DD YYY" is not localized in any way.
"strnicmp" shouldn't work with NULL pointers
The Situation:
compiled a linklib using c++ object files (using the c++ cross compiler).
compiled a C stub that uses the linklib (using the c++ cross compiler).
Try to link them together (using the c++ cross compiler) with C object
files (using the normal target c compiler) that need to use -nostartup
= cant do because using the c++ files pulls in arosc (for stdio etc.) -
so wants to have the autoinit stuff present.
What can I do about this??
If it is possible to manually open it then what do I need to do exactly?
=== ENV ===
The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact. However in some cases (like this one) it is not required.
99% of the time that statement is true (not required) for pretty much every file in ENV: or do people change their default icons - and prefs settings - every boot?
There seem to be a bad habit of late with developers changing things to reflect their own personal preference when the change isn't actually necessary - It would be nice if people could refrain from doing that in the tree without at least discussing it on the dev-list first (and with good reasoning unless they committed said work in the first place..)
We're not keen on the pollution of the "S:" dir: it's meant to be for scripts. What's wrong with "ENV:"?
Only the fact that it takes up RAM. I understand that for PCs with several gigabytes of RAM this is
irrelevant. But let's remember about other machines. The philosophy behind ENV: is that keeping configuration files there allows you to 'Use' preferences by keeping a copy in ENVARC: intact.
However in some cases (like this one) it is not required.
How about implementing in the style of HappyENV then? RAM-disk handler that falls through to reading from ENVARC: if there is no such file stored in it already. Removes RAM usage for unchanged files, removes the need to copy ENVARC to ENV in startup-sequence.
Shouldn't be too hard to make from AmberRAM, or even just extend AmberRAM to provide this service.
Is it feasable to build a special version of AmberRAM handling ENV: that will try and copy the requested file from ENVARC: if it isnt found in ENV: ?
Additionaly it could mark closed "files" as untouched - and expunge them from ENV: after a period of time to free up additional RAM:, or when the system is running low on free memory?
Silenty disappearing files may not be a good plan. Would be nice if the following would work:
ASSIGN :ENV SYS:Prefs/Env-Arc ADD
ASSIGN :ENV RAM:ENV ADD
Where new files put in ENV: end up in RAM:ENV, and opening files looks in RAM:ENV first, then SYS:Prefs/Env-Arc
Well - that's essentially what im proposing but without the assigns - or need for a RAM:ENV directory.
Adding it as a feature of AmberRAM sounds like the most memory efficient way (one handler to load in RAM) but that's only if it is possible to make it handle ENV: additionally to RAM:, and if it is even possible to add the proposed functionality (...and how to make it enable it when accessing ENV:).
===(AS)MP support===
If one has to recompile software for SMP multi core, is there any thing special one has to do to get software to run?
Use task.resource if you need to query information about what tasks are running, and clear msgports completely when they are allocated.
Most code should not need Forbid. Use Semaphores, Messages etc. to sync your own code.
Accessing system structures is a different thing. Use the proper API whenever possible.
How single structures will be protected in the future is still a moving target, at least it is not documented. And you should never use undocumented stuff
Ideas on for SMP multi-core
Another suggestion is ... Forbid/Permit function calls are meant to halt multitasking so as no other task could intervene with what ever the calling task is doing, e.g. setting semaphores. Disable/Enable calls are meant to halt interrupts and as a side effect they also halt task switching.
One option is to make it compulsory to protect shared resources with semaphores and forbid the use of simple Forbid() calls as to protect something. Setting semaphore should be done if possible with atomic instructions (check and alter in one instruction). Or make the second concurrent ObtainSemaphore call halt the second calling task and force if possible a task switch which ever gives better results.
Semaphores could store the owning tasks task pointer instead of boolean to make things easier.
As long as the CPU initiates the DMA transfers through the OS, and the OS ensures that the transferred memory is within the region accessible to the user initiating the transfer, everything is fine. The CPU is the conductor, and the CPU by that has the control of which DMA transfer is initiated and which is not.
All you need to do is to write device drivers reasonable. Hint: CachePreDMA and CachePostDMA exist.
All the Os has to do is to verify that the memory regions to be transferred are valid, and prohibit direct access to the DMA control registers from user space. None of these algorithms imply huge costs.
The current OS design doesn't really allow virtual memory in first place, Forbid() is again the problem.
[http://www.tbs-software.com/guide/index.php?guide=autodocs.doc%2Fmemory.doc&node=1 memory.library API] seem to low level. IMHO the programs should not know how the swapping is implemented. I would just go for one new memory flag
MEMF_SWAPPABLE that indicates that a certain memory region or a whole memory pool won't be accessed during Forbid()/Permit() etc. It only solves part of the problem, it only implements virtual memory and not memory protection. For the latter you need to be able make certain memory inaccessible by other programs, some memory read-only for one task and read-write for other tasks, etc. And I think this should be done in the same Address Space in order to avoid you constantly need to swap between different address spaces.
So to summarize, if there are programs using this API we may provide a wrapper layer to get them working but I am not convinced this API should be the reference API with whom to provide VM to AROS programs.
=== Variadic ===
variadic functions (i.e. functions with an arbitrary amount of arguments).
<pre>
#include <stdarg.h>
[...]
char * STDARGS GetKeyWord(int value, char *def, ...)
{
[...]
va_list va;
[...]
va_start(va, def);
[...]
va_end (args);
</pre>
Please keep with using stdarg rather than having va casted to a LONG * type and varargs handled manually. Doing so, prevents tons of casting, where a simple va_arg can be used. So, string = *((char **) args) instead of string=va_arg(va, char *).
<pre>
#include <stdio.h>
#include <stdarg.h>
int printf (const char * format, ...)
{
int retval;
va_list args;
va_start (args, format);
retval = vfprintf (stdout, format, args);
va_end (args);
fflush (stdout);
return retval;
} /* printf */
</pre>
Couldn't find varargs.h or stdarg.h. and have no use for AROS_SLOWSTACKHOOKS or AROS_SLOWSTACKTAGS.
GCC looks for stdarg.h in a different place:
/bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/include/stdarg.h
Here is a path for a "normal" header:
bin/linux-i386/tools/lib/gcc/i386-aros/4.2.2/../../../../i386-aros/sys-include/aros/system.h
The use of vararg.h isn't supported by newer gcc versions. If you want your code to run on architectures that pass part of variadic arguments in a number of registers you need to use AROS_SLOWSTACK macros. Otherwise your program will not work on powerpc and x86_64 ports.
Of course the SLOWSTACK stuff is not needed in a function that can use va_list, va_start, va_arg and va_end. It's only needed if you want to write functions like DoMethod or similar.
#include <stdarg.h>
should be enough no matter if you do cross or native compiling. If it does not work, something is wrong and should be corrected.
Stdarg.h is here, Development:lib/gcc/i386-aros/4.2.2/include/
...which is part of the compiler's default include paths. In other words, #include <stdarg.h> works out of the box, indeed. (sorry, I should have just tried it before invoking "search" or "find"...)
furthermore, myprintf() as shown above won't work, because...
printf(format, args);
...is wrong - the second argument does not match printf() prototype, it expects a argument list, but args is of type va_list (obviously) - so one has to use...
vfprintf(stdout, format, args);
...instead, just like in the original printf(), and add fflush(stdout).
additionally, one could use...
int myarg = va_arg(args, int);
...between va_start() and va_end() to access individual arguments, where each call to va_arg() returns an argument casted to the desired type (here: "int") from the list given (here: "args") and advances to the next one.
wrapping up vfprintf() and modifying the format string now is a major speedup! no more backslash-n typing! this has been haunting me for years!
On MOS and AmigaOS, the NewObject variadic function is kept in the static library. It takes most of the parameters on the stack - thanks to that the implementation of NewObject calls the NewObjectA function. Everything works perfect, and the typical MUI macros may be easily used.
This, however, is not the case when you compile for AROS. Here, NewObject is a variadic macro, not a function. Thanks such approach we do not need any custom compiler in case of systems, where the arguments of variadic functions are passed partially through registers and partially through the stack (This is the case of PPC and x86_64, this is also the reason why both OS4 and MOS require specially patched compilers).
Since NewObject is a macro, the gcc's preprocessor expects the list of macros arguments enclosed within parentheses. In MUI macros it is not the case. Imagine the following test code:
<pre>
#define foo(a,b) ((a)+(b))
int loosy_function(int a, int b)
{
return foo(a,b);
}
</pre>
This will compile and work, but the following piece of code:
<pre>
#define foo(a,b) ((a)+(b))
#define END )
int loosy_function(int a, int b)
{
return foo(a,b END;
}
</pre>
will fail with the error: unterminated argument list invoking macro "foo"
There are two ways of fixing your issue. Either create your new objects outside this huge MUI constructions, and in there use just a pointer, or get rid of the "End" macro and exchange it with "TAG_DONE)".
Badly written software is, for example, casting va_list to an APTR or even doing so as if va_list were a plain table of function arguments. Such code needs to be fixed because it has very few chances to work anywhere but on author's machine ;)
The problem is nOt that they assume sizeof(APTR) == 4, its that they often do not use APTR, and use ULONG to store pointers exclusively. If the code used APTR/IPTR as it should - most of the "problems" wouldn't exist.
It would also help if people would start using variadic arguments properly. Many coders do assumptions which shall never be made. Instead, they should consider using stdarg.h file and all the va_* functions :)
===ABI===
In the head of our SVN repository there are now only 3 directories:
<pre>
admin/
branches/
trunk/
</pre>
We have added two extra dirs there: tags and imports
As discussed when we branch ABI V0 and [[Aros/Developer/ABIv1|ABI V1]] it would also be good to introduce tags. Normally this is done in a directory in the repository called tags. Currently we don't have this directory there. (We do have branches/tags that is a hack I have done because one doesn't have write access in the top directory. I think this directory is not clean and should be removed).
The second directory I would introduce is an imports directory for implementing vendor branches as discussed in the svn [http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html book]. Currently we use code from several different projects and that code is stored inside the AROS tree; we seem to have problems with keeping this code up to date and merge our changes upstream. Maintainers of up stream projects like the MUI classes etc. have complained about this (to put it lightly).
Introducing these vendor branches would make it easier to see what changes we have made and make patches to be sent upstream and make it easier to import newer upstream versions of their code. Although can't "copy" the vendor branch into the main branch because it's already there, so start with a "merge".
Yes, the first step to make the code already in the repository compatible with the vendor branches will be the most difficult. The best way to do it the following way:
* first import the version on which the current AROS code is based into the vendor branch
* then import the new version over it in the vendor branch
* finally merge the difference between these two version in the AROS code present in the repository.
For example, place NList directly under vendor and not in a subdirectory like "contrib/zune/classes".
Actually after we have a stable [http://aros.sourceforge.net/documentation/developers/specifications/drafts/abiv1.php ABIv1 (2012 or later)]. We need to move away as much as possible from the contrib directory to some other repositories. The reasons are ...
* The AROS repository should be for the core AROS code.
* other contrib projects should be tried to be compiled for all Amiga-like OSes.
* The release scheme for AROS and the other programs should not have to be aligned.
* Binary versions should be provided on aros-archives and on aminet and/or OS4Depot to install them. (Some clever programs should maybe be provided to make the life of distribution developers easier).
* avoid parallel forks of programs for AROS and the other amiga OSes.
If there is really a need for a place for hosting AROS projects we may investigate setting up such a server but then including bug tracking, governance, maillist, etc. for each project separately. I personally think there are already enough places like sourceforge, google code, savannah, etc. where people can go for hosting such projects.
==Links==
* http://amigadocs.hokstad.com
* http://amigadocs.hokstad.com/doku.php?id=dev-links
* http://www.liquido2.com/tutorial/index.html
* Amiga(TM) OS4 has a [http://www.ast-workshops.co.uk/os4pg/ workshop] page and hope to produce a [http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=31117&forum=42#549091 book] soon. [http://www.solie.ca/articles/map/map.html Brief Guide].
In the future...?
*AROS 64bit - SMP, Vulkan with OpenGL compability layer
*AROS 32bit - keep for historic reasons
What would you like to see implemented in AROS?
ABIv1 completed, SMP (x86_64), SendMsg()/GetMsg() to support memory protection between target and destination, in that order. Michal Schulz and Jason McMullan have been toying with the question "What are the minimal changes needed to the AmigaOS 3.1 API to support SMP"? The answer so far seems to be "few, but subtle". For example, SysBase->ThisTask is no longer meaningful on SMP, but FindTask(NULL) is. Disable() and Forbid() are shockingly bad on performance, but adding a spinlock semaphore mode to SignalSemaphore will help new code on SMP.
Leveraging a 'common' OS with a lot of machine support (Linux, MacOS, Windows, QNX, etc.) is something that AROS has been doing for quite a long time, and it is the biggest strength of AROS. This AROS experience and programming model, in the same way the Google's Android layers on top of Linux, or MacOS X layers on top of the Darwin/BSD kernel, as a first step
* The graphics + layers subsystem could be implemented as a shim on top of a OpenGL ES implementation (ie on any modern Linux system, or the RaspberryPI's hardware, MacOS X, etc).
- This also allows every window to be on its own 3D surface with backing store, allowing Wanderer (or a Commodity)
rearrange/zoom/animate app windows without having to send a pile or refreshes to them
* Use OpenAL as the sound backend
* AROSTCP would be a thin layer over the native OS's TCP/IP stack
* dos.library, poseidon.library, and input.device would be slim shims over the native APIs
* If we move to loading all libraries' into the application's task space, instead of a single global instance of the library, this will allow SMP and MMU more easily.
- Yes, it will require a lot of work in the libraries to make this transition
- Yes, I do think it will be worth it in the end.
* A 'fat binary' install format (or, maybe LLVM bytecode) that can be 'flattend' to the target architecture on installation.
So, what would this 'AROS of the future' look like?
* AmigaOS 3.x style API, with certain 'fundamental changes' to message passing
* Uses the underlying OS' device drivers, so more AROS developer effort can go to user-visible features and bugfixes
* Allows AROS applications to run side-by-side with the OS's native apps
And why would anyone want to program on such a system?
* AROS applications would run on any system that has the AROS Framework installed
* AROS applications are pixel-for-pixel the same on all platforms.
* Develop with the knowledge that you are guaranteed OpenGL and OpenAL, and the rest of the AROS Framework
an option for mmake to dump its dependency of metatarget in a graphviz[*] input file. This should make it possible to visualize the dependencies and hopefully be inspiration for cleaning up some mess, circular or unneeded dependencies and so on.
AmigaOS gcc 9 [https://franke.ms/amiga/gcc.wiki Old versions] able to create binaries for AmigaOS and [https://eab.abime.net/showthread.php?t=93813 Upgrading gcc versions]
==References==
{{reflist}}
{{status|50%}}
{{BookCat}}
tu4uf7a2kjao28dcvvarun5495lnxip
Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) I
102
20333
4640458
4619976
2026-06-16T20:45:35Z
Mahagaja
13610
/* See also */ update link
4640458
wikitext
text/x-wiki
{{recipesummary
| Category = Italian recipes
| Time = 1½ hours
| Rating = 2
| Difficulty = 3
| Image = [[Image:Melanzane alla Parmigiana.jpg|300px]]
}}{{recipe}}
'''Melanzane parmigiana''' was originally a Sicilian dish called ''Parmiciana di melenzane'', ''parmiciana'' being the slats of a wooden shutter which resemble the layering of the slices of eggplant in the dish. In the form in which it is now known worldwide, it is generally an oven baked dish consisting of aubergine, Parmesan cheese, mozzarella and tomato sauce.
==Ingredients==
* 3–4 big [[Cookbook:Eggplant|eggplants]] (aubergines)
* [[Cookbook:Tomato Sauce|Tomato sauce]]
* 200–300 [[Cookbook:gram|grams]] of [[Cookbook:Mozzarella Cheese|mozzarella cheese]], [[Cookbook:Slicing|sliced]]
* Grated [[Cookbook:Parmesan Cheese|Parmesan cheese]]
* [[Cookbook:Flour|Flour]] or [[Cookbook:Bread Crumb|breadcrumbs]]
* [[Cookbook:Oil|Oil]] to [[Cookbook:Frying|fry]]
* [[Cookbook:Salt|Salt]]
* 2 [[Cookbook:Hard Boiled Eggs|eggs]] (optional)
* Fresh [[Cookbook:Basil|basil]] (optional)
* [[Cookbook:Pepper|Pepper]] or other spices (optional), to taste
==Procedure==
#Wash eggplants and cut them in slices about 1–1.5 [[Cookbook:Centimetre (cm)|cm]] (or about ¼ [[Cookbook:Inch|inch]]) thick.
#Salt each slice on both sides, and use one of the following techniques to draw the water out. Then rinse off the salt under running water and let them dry. Arrange them on a plate, and cover them with another. Let them rest for 60–120 minutes, time permitting. Alternatively, place salted eggplant slices in a large strainer, cover, and place a weight (e.g., a pot of water) on top to help squeeze out the water faster.
#Bread and cook the eggplant slices, with one of these two methods. Do not overcook, as they will spend more time in the oven later.
#*For a thicker breading, dredge and fry them.
#*#Whisk the eggs in a shallow dish, and spread the crumbs (or flour) in another. Mix any dry spices in the flour.
#*#Dip each slice in eggs, cover both sides. Then, cover them in the crumbs, and [[Cookbook:Frying|fry]] them in a [[Cookbook:Frying Pan|pan]] over medium heat.
#*For a light thin breading, dust with flour and [[Cookbook:Baking|bake]]. They should come out lighter than if fried.
#*#Arrange in a [[Cookbook:Baking Dish|baking dish]], dust each slice with flour, and drizzle with oil.
#*#[[Cookbook:Baking|Bake]] at [[Cookbook:Oven temperatures|180°C (350°F)]] for about 10 minutes. Leave them in the baking dish.
#Layer the eggplant slices, tomato sauce, then mozzarella and Parmesan cheese in a baking dish. Some cooks add fresh basil leaves. Make as many layers as you wish, but 3 or 4 should be enough.
#For a nice crust, finish with another covering of Parmesan.
#Bake at [[Cookbook:Oven temperatures|180°C (350°F)]] for about 20–30 minutes, or until cheese topping is lightly browned.
==See also==
*[[Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) II]]
[[Category:Italian recipes]]
[[Category:Recipes using eggplant]]
[[Category:Recipes using parmesan]]
[[Category:Vegetarian recipes]]
[[Category:Baked recipes]]
[[Category:Side dish recipes]]
[[Category:Recipes with metric units]]
[[Category:Recipes using bread crumb]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using egg]]
[[Category:Recipes using wheat flour]]
9drggb4oagu0lxneha15js9w5bo2bqk
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nf6
0
37078
4640505
4633257
2026-06-17T10:19:04Z
Ltbdl
3452696
/* Attack f7 */ link
4640505
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|Two knights defence
|eco=[[Chess/ECOC|C55]]
|parent=[[../|Italian game]]
}}
== 3...Nf6 · Two knights defence ==
With 3...Nf6, Black develops a knight and attacks the e4-pawn, getting one step closer to castling.
White has several ways to proceed from this position: defend the e-pawn, usually with [[/4. d3|'''4. d3''']], attack f7 with the aggressive [[/4. Ng5|'''4. Ng5''']] (taking advantage of the fact that Black's move 3...Nf6 blocked the queen's control of the g5-square), or sacrifice the pawn for an open centre and swift attack.
=== Defend e4 ===
The e4-pawn is attacked, so the most logical move for white would be to defend it.
[[/4. d3|'''4. d3''']] is the most common move, defending the pawn and opening the c1-h6 diagonal for the dark squared bishop. This is known as the '''modern bishop's opening'''. After 4...Bc5 this transposes into the Giuoco Pianissimo. 4...Be7 continues with Ruy Lopez-style development.
[[/4. Nc3|'''4. Nc3''']] transposes into the Italian variation of the four knights opening. Though this looks promising as it defends e4 ''while also'' developing a piece, it is less common and allows Black to play a centre fork trick. 4...Nxe4 5. Nxe4 d5 6. Bd3 dxe4 7. Bxe4 Bd6: Black temporarily sacrifices a piece in order to play d5 and get back the piece with a comfortable position and has equalised.
=== Attack f7 ===
[[/4. Ng5|'''4. Ng5!?''']] is a sideline but the most common amateur move. This Romantic move is an attack on f7 with the bishop and knight, taking advantage of the fact that Black gave up control of g5 and cannot castle yet. However, it is unprincipled to attack before having finished development and Black equalises with best play.
The most serious continuation is 4...d5, sacrificing a pawn to relieve the pressure on f7, 5. exd5 Na5, the Polerio defence which counter-attacks the bishop.
'''[[/4. Ng5/4...Bc5|4...Bc5?]]''' is the venomous but objectively dubious Traxler counterattack. Black can answer 5. Nxf7? Bxf2+! 6. Kxf2 Nxe4+{{chess/not}}, but instead 5. Bxf7+ is a free pawn.
In a sense 4. Ng5 also defends e4, because 4...Nxe4? (called the Ponziani-Steinitz gambit) is answered by 5. Bxf7+! Ke7 6. d4.
=== Sacrifice e4 ===
[[/4. d4|'''4. d4''']], called the '''open variation''', opens up the centre. This almost always transposes into the Scotch gambit, 4...exd4, and the main moves are 5. O-O or 5. e5. If 4...Nxe4? there is a trap, 5. dxe5 Bc4?? 6. Qd5!, threatening Qxf7# to pick up the knight.
White can also gambit the e4-pawn with [[/4. O-O|'''4. O-O?''']], intending to meet 4...Nxe4 with 5. Nc3 Nxc3 6. dxc3. White has sacrificed the pawn for a rapid lead in development and an open position, hoping for a swift attack on Black's uncastled king.
=== History ===
This line has historically also been known as the Prussian defence.<ref>{{Cite book |title=Lasker's Manual of Chess |last=Lasker |first=Emanuel |publisher=E P Dutton & Co. |year=1927 |location=New York |pages=52-3}}</ref>
== Theory table ==
{{Chess Opening Theory/Table}}
{{Chess/theory table|links=all
|line1=4. d3 Bc5
|name1=Giuoco piano<br><small>(by transposition)</small>
|line2=4. Ng5 d5 5. exd5 Na5 6. Bb5+ c6 7. dxc6 bxc6 8. Bd3 Nd5 9. Nf3 Bd6
|name2=Polerio defence
|line3=4. ... ... 5. ... Nxd5 6. Nxf7 Kxf7 7. Qf3+ Ke6 8. Nc3 Nb4 9. O-O c6
|name3=Fried liver attack
|linee4=4. ... ... 5. ... ... 6. d4 Nxd4 7. c3 b5 8. Bd3 h6 9. Nxf7 Kxf7
|name4=Lolli attack
|line5=4. ... ... 5. ... b5 6. Bf1 Nd4 7. c3 Nxd5
|name5=Ulvestad variation
|line6=4. ... ... 5. ... Nd4 6. c3 b5 7. Bf1 Nxd5 8. Ne4 Qh4 9. Ng3 Bg4 10. f3 e4 11. cxd4
|name6=Fritz variation
|line7=4. ... Nxe4 5. Bxf7+ Ke7 6. d4
|name7=Ponziani-Steinitz gambit
|line8=4. ... Bc5 5. Bxf7+ Ke7 6. Bd5 Rf8 7. O-O d6 8. c3 Bg4 9. Qb3 Bb6 10. Bxc6 bxc6 11. h3 h6
|name8=Traxler counterattack
|line9=4. d4 exd4 5. e5 d5
|name9=Open variation
|line10=4. ... ... 5. O-O
|name10=Scotch gambit<br><small>(by transposition)</small>
|line11=4. Nc3
|name11=Four knights game,<br>Italian variation<br><small>(by transposition)</small>
}}
{{ChessMid}}
== References ==
{{reflist}}
=== See also ===
{{Wikipedia|Two Knights Defence}}
* ''The Two Knights Defence'' (1983) Yakov Estrin. {{ISBN|0-7134-3991-2}}.
{{BCO2}}
{{NCO}}
{{Chess Opening Theory/Footer}}
okgkdmk0inu6yhzhrhycl58ptg7j7f9
Tagalog/About Tagalog
0
60279
4640497
3184611
2026-06-17T05:58:10Z
Jan Sepawi Tija (Jeffrey Diaz)
3591057
Filipino is actually a standard form of Tagalog.
4640497
wikitext
text/x-wiki
[[Image:Flag_of_the_Philippines.svg|thumb|right|250px|The flag of the Philippines]]
Tagalog is the largest of the [[w:Languages of the Philippines|Philippine languages]] and, Its standardized variant, Filipino is the national language of the Philippines. It is a member of the Austronesian language family
The language is natively spoken by 33 million Filipinos throughout the Philippines and as a second language by more than 65 million Filipinos nationwide. It is the sixth-largest language in the United States and is the language of the large Filipino diaspora, totaling some 11 million Filipinos.
Tagalog also has a vocabulary enriched by its pre-colonial and colonial history. Spanish is the single largest contributor to the Tagalog vocabulary and as such Tagalog seems to the foreign ear to sound somewhat like Spanish. Other contributors include Arabic, Sanskrit, Min Nan Chinese, Malay, Nahuatl, Tamil, Persian and other Philippine languages such as Kapampangan and Ilocano.
It's standardized form, Filipino, the Philippines' national language, is the language of the media, public and some private education, conversation, the clergy and even in administration. It is a co-official language along with English and is the lingua franca of the Philippines. As such, Filipino is one of the many symbols of nationhood that binds the Philippine nation together.
Tagalog was once written using Baybayin, more commonly known as Alibata, a script based on the Kavi script of Java. The script enjoyed a high literacy rate until the Spanish arrival, which led to its extinction. Today, Tagalog is written in the Latin alphabet, but with two different letter sets: the older Abakada (with 20 letters) and the newer Alpabetong Filipino (Filipino alphabet, with 28 letters).
----
[[Tagalog|^ Table of Contents ^]] | [[Tagalog/How to use this Tagalog Wikibook|<<How to use this Tagalog Wikibook]] | '''About Tagalog''' | [[Tagalog/Lesson 1|Lesson 1: The Alphabet>>]]
{{BookCat}}
8ufepeash61qnwsjae7zjhd33dtezqc
4640498
4640497
2026-06-17T05:59:04Z
Jan Sepawi Tija (Jeffrey Diaz)
3591057
/* */
4640498
wikitext
text/x-wiki
[[Image:Flag_of_the_Philippines.svg|thumb|right|250px|The flag of the Philippines]]
Tagalog is the largest of the [[w:Languages of the Philippines|Philippine languages]] and, Its standardized variant, Filipino is the national language of the Philippines. It is a member of the Austronesian language family
The language is natively spoken by 33 million Filipinos throughout the Philippines and as a second language by more than 54 million Filipinos nationwide. It is the sixth-largest language in the United States and is the language of the large Filipino diaspora, totaling
Tagalog also has a vocabulary enriched by its pre-colonial and colonial history. Spanish is the single largest contributor to the Tagalog vocabulary and as such Tagalog seems to the foreign ear to sound somewhat like Spanish. Other contributors include Arabic, Sanskrit, Min Nan Chinese, Malay, Nahuatl, Tamil, Persian and other Philippine languages such as Kapampangan and Ilocano.
It's standardized form, Filipino, the Philippines' national language, is the language of the media, public and some private education, conversation, the clergy and even in administration. It is a co-official language along with English and is the lingua franca of the Philippines. As such, Filipino is one of the many symbols of nationhood that binds the Philippine nation together.
Tagalog was once written using Baybayin, more commonly known as Alibata, a script based on the Kavi script of Java. The script enjoyed a high literacy rate until the Spanish arrival, which led to its extinction. Today, Tagalog is written in the Latin alphabet, but with two different letter sets: the older Abakada (with 20 letters) and the newer Alpabetong Filipino (Filipino alphabet, with 28 letters).
----
[[Tagalog|^ Table of Contents ^]] | [[Tagalog/How to use this Tagalog Wikibook|<<How to use this Tagalog Wikibook]] | '''About Tagalog''' | [[Tagalog/Lesson 1|Lesson 1: The Alphabet>>]]
{{BookCat}}
7gc9d20wt7ju4vyhk60if2zyup1rsqm
Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) II
102
82073
4640459
4514973
2026-06-16T20:45:57Z
Mahagaja
13610
/* Procedure */ add link to other version
4640459
wikitext
text/x-wiki
{{Recipe summary
| Category = Italian recipes
| Difficulty = 3
}}
{{recipe}}
'''Melanzane alla parmigiana''' is a typical Italian dish, existing in different forms in most parts of Italy. Northerners claim it as their own because of the name. Southerners, in particular Sicilians, claim that it originated in the south and that "Parmigiana" is a misunderstanding for "Palmigiana", which is a type of shutter, alluding to the way in which the eggplant slices are laid. There are some variations (including a dessert version with chocolate) but mostly the ingredients are: eggplants, tomato sauce, basil leaves, mozzarella, and, obviously, Parmesan cheese.
== Ingredients ==
* 2 [[Cookbook:Kilogram|kg]] (4 [[Cookbook:Pound|lb]]) [[Cookbook:eggplant|eggplants]]
* 700 [[Cookbook:Gram|g]] (24 [[Cookbook:Ounce|oz]]) fresh cooking [[Cookbook:Tomato|tomatoes]], or one large or two medium cans of plum tomatoes
* 1 kg (2 lb) cows' milk [[Cookbook:Mozzarella Cheese|mozzarella cheese]], known in Italy as ''fiordilatte''
* ½ large or 1 medium [[Cookbook:Onion|onion]], [[Cookbook:Slicing|sliced]]
* [[Cookbook:Olive Oil|Olive oil]]
* Fresh [[Cookbook:Basil|basil leaves]]
* [[Cookbook:Parmesan Cheese|Parmesan]] or Grana Padano [[Cookbook:Cheese|cheese]]
== Procedure ==
#Cut eggplants lengthwise in ¼ inch (0.75cm) thick slices, and put them in a plate covered by plenty of salt for about 1 hour. Wash off the excess salt and dry the slices with a [[Cookbook:Paper Towel|paper towel]].
#Start cooking the onion slices in olive oil; when the onion is soft add drained whole tomatoes and mash them with a fork. If the tomatoes are watery, add a small can of tomato paste to thicken the sauce. Add 2 leaves of basil and [[Cookbook:Simmering|simmer]] for about 20 minutes.
#While the tomato sauce is cooking, [[Cookbook:Frying|fry]] the eggplant slices as follows. Fill a frying pan (cast iron if you have it) with ½ inch (1 cm) of olive oil and heat. When the oil is hot, start frying the eggplant slices a few at a time so that they do not overlap in the pan. Cook until golden, flipping once. Remove the eggplants and put them in a drainer so the excess oil can drain. Repeat until all the slices are cooked.
#To assemble, start with a thin layer of sauce in the bottom of a greased ovenproof [[Cookbook:Baking Pan|baking pan]] or [[Cookbook:Baking Dish|casserole]]. Then proceed with a layer of eggplants with their edges slightly overlapped and no voids. Add basil leaves and a layer of sliced mozzarella. Continue alternating layers until the eggplant is used up, and finish topping with tomato sauce and grated Parmesan or grana.
#[[Cookbook:Baking|Bake]] in the [[Cookbook:Oven|oven]] for about 40 minutes at 350°F (180°C). Serve really hot. If you are lucky enough to have leftovers, they taste even better the day after.
==See also==
*[[Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) I]]
[[Category:Recipes with metric units|{{PAGENAME}}]]
[[Category:Italian recipes]]
[[Category:Recipes using eggplant]]
[[Category:Vegetarian recipes]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using parmesan]]
sw92tom714afmm9xkk9efv3rz6t3cq3
Urdu/Vocabulary/Months of the Year
0
89627
4640473
4538091
2026-06-16T21:25:30Z
Mapleszn
3607364
/* Gregorian Calendar */
4640473
wikitext
text/x-wiki
Normally months of the year are spoken in the same way as English.
=====Gregorian Calendar=====
{| border="1" cellpadding="2" cellspacing="1"
!bgcolor=#EEEEEE|Name
!bgcolor=#EEEEEE|Urdu
!bgcolor=#EEEEEE|Transliteration
|-
|1|January||جنوری||janvare
|-
|2|February||فروري||fervare
|-
|3|March||مارچ||mārch
|-
|4|April||اپريل||aprael
|-
|5|May||مئ||maee
|-
|6|June||جون||jūn
|-
|7|July||جولائ||julāy
|-
|8|August||اگست||agust
|-
|9|September||ستمبر||sitambar
|-
|10|October||اکتوبر||aktūbar
|-
|11|November||نومبر||navamber
|-
|12|December||دسمبر||disamber
|-
|}
{{BookCat}}
o2zaqpim2ksqtxnr5hcfn5m5jvc3iix
Practical Electronics/PCB Layout
0
92659
4640442
4628404
2026-06-16T13:08:12Z
RansiwewikiHxdCircuit
3607193
4640442
wikitext
text/x-wiki
The efficient laying out of traces on a PCB is a complex skill, and requires much patience. This task has been made vastly easier with the advent of readily available PCB layout software, but it is still challenging.
Usually an electronics or electrical engineer designs the circuit, and a layout specialist designs the PCB. PCB design is a specialized skill. There are numerous techniques and standards used to design a PCB that is easy to manufacture and yet small and inexpensive.
These are the usual steps in PCB layout for most customers that allow the customer maximum flexibility to make changes to embrace the normal engineering changes that happen during the design process. By utilizing this structured approach maximizes the engineering teams' efforts to design and build a successful product.
1. Schematic / Components design review. <br>
2. Determine what footprints are required to be built, and build them incorporating 3D models. <br>
3. Board outline definition process. DXF board outline file import is the most stable method.<br>
4. Component placement. <br>
5. Customer review of component placement. <br>
6. Power and Ground Plane assignment. <br>
7. Customer review of Power Plane and Ground Plane Assignments. <br>
8. Fanout. <br>
9. Critical net routing. <br>
10. Customer review of critical net routing. <br>
11. Non critical net routing. <br>
12. Customer review. <br>
13. Silkscreen adjustment and board part number assignment/placement. <br>
14. Gerber, DXF, Step, IDF/LDF final file generation for final customer review and approval. <br>
15. Final cleanup and any touch up required from customer feedback. <br>
<ref>[https://www.911eda.com/pcb-design-process-faqs Standard PCB Layout Process Flow (911EDA)]
</ref>
==Copper Thickness==
The vast majority of PCBs are manufactured with "1 ounce copper" on the outer layers. If there are inner layers, they are almost always manufactured with "1/2 ounce copper".
The thickness of the copper layer on the PCB affects the behaviour of the circuit. PCB copper thickness is usually measured in ''ounces per square foot'', frequently just called ounces. It can also be given in micrometres, inches or mils (thousandths of an inch). The measurements for commonly used thickness are given below.
{| class=wikitable align=center
!oz/ft²!!μm!!in!!mil
|-
|0.5||17.5||0.0007||0.7
|-
|0.75||25.5||0.0010||1.0
|-
|1||35||0.0014||1.4
|-
|2||71<ref>
[http://www.national.com/kbase/category/Packaging_Process.html#28 National Semiconductor knowledge base: "What is the translation between PCB copper thickness in ounces, inches, and mm?"]
</ref>||0.0028||2.8
|-
|3||105||0.0042||4.2
|}
As always, the thickness of a thin slab of metal with a given top surface area is always exactly
::<math>thickness = { mass \over { area \times density } }</math>
The area is "1 square foot" (144 square inches), the density of copper is 8.96 mg/mm<sup>3</sup> = 5.18 ounce/(inch<sup>3</sup>),
and usually the mass is "1 ounce of copper", but occasionally 1/2, 2, 3, or 4 oz.
==Trace Width==
Different widths of traces have different properties that could affect the operation of the circuit. For, example, a thin trace has a higher resistance than a thick one, and can therefore carry less current or will heat up more for the same current.
Due to the large number of tables and charts, this information is presented on different pages:
*For current capacities, see [[/Trace Current Capacity/]].
Most manufacturers can manufacture a minimum trace width of 0.006 inch.
(Many can manufacture traces 0.004 inch wide).
Such minimum-size traces are more than adequate for most digital and analogue signals.
== Footprints or Geometries==
The manufacturer of each part recommends a "footprint", a copper pattern for the part to be soldered to the PCB.
Sometimes the footprint also includes a drawing of the outline of the part.
Some people put that outline on the silk screen.
Other people make a "virtual outline" that shows up on the computer screen and on the assembly drawings, but not on the actual PCB.
Footprints for capacitors and batteries should include plus sign (+) polarity marking on the silk screen next to the positive pad.
(The positive-end-indicator stripe on the capacitor itself should be placed nearest that plus sign).
Footprints for LEDs and other diodes should have a polarity mark -- the "diode arrow symbol" (triangle + bar), or at least the bar, in silk-screen. The bar matches the cathode-end-indicator stripe on the diode itself.
<ref>
[http://www.screamingcircuits.com/Portals/0/documents/LED%20markation%20at%20Screaming%20Circuits.pdf Screaming Circuits: "LED and diode markation guidelines"]
</ref>
Footprints for ICs should have a polarity mark "dot" or "1" near pin 1.
Most people give pin 1 a "squared-off" pad, and all other pins a "rounded pad".
Some people also like additional "10", "20", "30", etc., marks in silkscreen next to pin 10, pin 20, pin 30, etc.
The polarity mark must be visible after mounting the part so it can be seen after inspection.
(It's useless to put the polarity mark where no one can see it).
It's okay to put the polarity mark underneath a tubular-packaged diode, since people can look "around" the mounted diode and see the polarity mark.
<ref>
[http://www.divsys.com/servicesproducts/assembly/LayoutGuidelines.asp?view=print Diversified Systems: "Production electronic assembly layout guidelines: Designating polarity"]
</ref>
== Holes ==
There are 3 general types of holes:
A '''via''' -- literally, a "way" to get from one layer of copper to another layer of copper.
The vias on a particular PCB should all be the same size.
Some people[http://www.itee.uq.edu.au/~metr2800/Lecture%20Notes/pcbdesign.html] recommend 0.025" (0.6mm) diameter via holes, surrounded by a 0.0394" (1.0mm) diameter via copper pad, if at all possible.
Some very dense SMT boards require smaller vias.
Some manufacturers can handle 0.012" diameter via holes, surrounded by 0.024" diameter via pad.
<!-- is there an industry-wide standard recommendation as of this year? -->
Since there is no actual component put into a via, many PCBs are manufactured with "plugged" vias (vias completely filled with metal) and "tented" vias (vias completely covered with solder mask).
A '''through-hole''' -- many components (called "through-hole components") require a hole (a "through hole") for each pin.
The part manufacturer should specify a "footprint" including the location and size of each hole.
If there is no recommendation, common practice is
* round leads: add 6 mils to the nominal round lead diameter to get the recommended PCB hole diameter.
* Rectangular leads: find the lead diagonal (<math>\textstyle \sqrt{x^2 + y^2}</math>). Then add 6 mils to get the recommended PCB hole diameter. ( 6 mils ≈ 0.15 mm )[http://www.samtec.com/tools/pcb-hole-sizes.aspx][http://forum.sparkfun.com/viewtopic.php?f=20&t=22258]
* voltage regulators and other components in TO-220 packages typically fit in 0.040" (1 mm) holes. Some people prefer a "universal layout" that supports practically any 3-pin regulator.<ref name="cook">
David Cook.
[http://www.robotroom.com/PCB-Layout-Tips.html "PCB Layout Tips"].
</ref>
* DIP package ICs and TO-95 typically fit in 0.031″ diameter holes<ref name="cook" /> (0.8 mm diameter).<ref>
[http://www.microwaves101.com/encyclopedia/drills.cfm "Drill sizes"]
</ref>
* "The component lead - hole clearance should be 0.4 mm" [http://olimex.com/pcb/dfm.html]
<!-- yes, these conflict. Which is right? -->
* "The optimum pad diameter for a through-hole component is twice its finished hole diameter."[http://www.diversifiedsystemsinc.com/ServicesProducts/Assembly/DesignGuidelines.asp]
* 0.1" pitch pin headers from many manufacturers<ref>
[[Wikipedia: pin header]]
</ref> are typically 0.025 inch (0.64 mm) square. Manufacturers typically recommend a hole 0.040 inch (1.00 mm) diameter.<ref>
[http://solutions.3m.com/wps/portal/3M/en_US/Interconnect/Home/Products/ProductCatalog/Catalog/?PC_7_RJH9U5230O73D0ISNF9B3C3SI1000000_nid=JKWCWNGKG1itWK7G49LP38glPNXPZVDPRRbl "3M Pin Strip Header, 961 Series"]
</ref><ref>
[http://www.molex.com/pdm_docs/sd/022235024_sd.pdf "Molex KK 254 header"]
</ref> It should be noted that 0.025 inch square terminals can be used for AWG 30 wire-wrapping as well.
A '''tooling hole or mounting holes''' ...
A "tooling hole" -- used to temporarily attach the board to test fixtures, during assembly and test. They are almost always 0.125" in diameter, unplated , and placed in opposite corners. Two are required, but a third can prevent reverse installation of the PCB. It is possible to use these as mounting holes for the end-use of the PCB.
Many manufacturers publish their "standard hole sizes" (standard drill bit sizes minus the standard barrel thickness of through-hole metal plating).
The person running the drill press prefers to see standard sizes; otherwise they are forced to either
(a) pick the next-smaller standard drill bit -- then the physical part won't fit in the hole;
(b) pick the next-larger drill bit -- this pushes the through-hole metal plating out, possibly hitting some internal trace and rendering the entire board unusable; or
(c) reject the board as unmanufacturable.
To avoid all 3 problems, often PCB designers "round up" non-standard hole sizes to the next larger standard hole size -- i.e., often holes for DIP packages are rounded up to 0.9 mm diameter -- and then run the DRC check.
If the DRC finds any traces that are now "too close" to the bigger hole, the designer pushes those traces a safe distance away before sending the design to the manufacturer.
== Board Thickness and Layers ==
The vast majority of PCBs have an overall thickness of 1/16 inch (1.58 mm).
Some very dense SMT boards have an overall thickness of 1/32 inch (0.79 mm), which allows smaller via holes to be drilled, allowing denser packing.
Occasionally boards are made with an overall thickness of 3/32 inch (2.3 mm), which makes it more rigid (but requires bigger via holes).
Often some or all layers are almost entirely covered with a "copper pour" ("ground plane" or "power plane").
Such pours typically have a signal-to-pour clearance of 0.010 inch and clearance from the cut edge (perimeter of the board edge) to pour of 0.020 inch[http://www.etpdesign.com/Technical/ThruHolePCBRules.pdf].
''(more [http://techref.massmind.org/techref/pwb_layers.htm layer stackup tips])''
Most PCBs have between one and twenty conductive layers laminated (glued) together in a sandwich with insulating plastic. PCBs with more than two layers help construct complex or dense circuits. They are not always used because they are more expensive, and the inner layers are more difficult to inspect and repair.
In more complex PCBs, two or more of the layers are dedicated to providing ground and power. These ''ground planes'' and ''power planes'' distribute power well. They also prevent radio waves from antennas unintentionally formed by tracks. These planes are rectangular sheets of foil that occupy entire layers (except for small holes to avoid unwanted connection to vias and through-hole components). They distribute electrical power and heat better than narrow traces. Sometimes solid metal PCBs with thin layers of insulation are used. The ''power electronic substrate'' carries away waste heat when air cooling is impossible.
Four-layer PCBs with a ground and power plane are often used in high-quality, but cost-conscious audio, avionics and medical electronics. Most consumer products have one or two layers.
If you want to use a BGA-packaged part, that one part typically dictates the number of layers the PCB must have.
With a few low-density BGA packages, it's possible to use a 2-layer PCB<ref>
Abhay Nadkarni.
[http://
www.cypress.com/?docID=25208 AN43841 "56-Ball BGA PCB Layout Guidelines"]
</ref><ref>
[https://www.digikey.com/en/product-highlight/n/nxp-semi/i-mx-rt1040-crossover-mcu "NXP i.MX RT1040 Crossover MCUs"].
11x11 mm 169-ball package intended for two-layer PCB design
</ref><ref>
[http://www.altera.com/literature/an/an114.pdf "http://www.altera.com/literature/an/an114.pdf"]
</ref><ref>
[http://www.alibaba.com/showroom/2--layer-bga-pcb.html 2-layer BGA PCB]
</ref>
Some BGA packages require at least 4-layer PCBs,
and many BGA packages force designers to use even more PCB layers.<ref>
[http://processors.wiki.ti.com/index.php/General_hardware_design/BGA_PCB_design "General hardware design/BGA PCB design"]
</ref><ref>
[http://www.latticesemi.com/lit/docs/package/tn1074.pdf "PCB Layout Recommendations for BGA Packages"]
Lattice Technical Note TN1074.
[http://www.latticesemi.com/~/media/Documents/ApplicationNotes/PCBLayoutRecommendationsforBGAPackages.ashx]
</ref><ref>
Lattice.
[http://www.digikey.com/Web%20Export/Supplier%20Content/lattice-semiconductor-220/pdf/lattice-wp-machxo-board-layout-techniques.pdf?redirected=1 "Low cost board layout techniques for designing with PLDs in BGA packages"]
</ref><ref>
[http://www.pcb-experts.com/Escape-routing-under-fine-pitched-BGAs.html "Escape routing under fine pitched BGAs."]
</ref><ref>
[http://www.xilinx.com/support/documentation/application_notes/xapp489.pdf "Four- and Six-Layer, High-Speed PCB Design for the Spartan-3E FT256 BGA Package"]
</ref><ref>
[http://www.pcbstandards.com/forums/showthread.php?t=1777 "How many layers needed for 1000 pin bga"]
</ref>
For example, a BGA package with 7 or 8 rows of balls (from the center to the perimeter) generally a minimum of 6 layers to fan-out, including a power plane and a ground plane.<ref>
Section 5.2: "How many PCB layers to fan-out the BGA", from
[http://www.nxp.com/documents/application_note/AN10778.pdf "NXP AN10778: PCB layout guidelines for NXP MCUs in BGA packages"]
</ref><ref>
Abhay Maheshwari and Soon-Shin Chee.
[http://bmc.bu.edu/bmc/asd/tester/xapp157.pdf "Board Routability Guidelines with Xilinx Fine-Pitch BGA Packages"]
</ref>
Some BGA packages with over 1000 pins and a pin-pitch of 0.8 mm require at least 8 layers and blind, buried, and micro-vias.<ref>
Charles Pfeil.
[http://www.mentor.com/products/pcb-system-design/resources/bga-breakouts-routing/upload/bga-breakout-challenges.pdf "BGA Breakout Challenges"]
</ref>
Often all the electronic parts of a system work fine with a 4-layer board or even a 2-layer board except for one part in a BGA package.
Rather than designing one big full-custom 10-layer board to hold everything,
many people prefer -- at least for the first prototype --
to partition the design into two PCBs -- or more.
One board that that includes that BGA part --
often a commercial off-the-shelf (COTS) board,
preferably one that includes as much as possible of the rest of the system --
and custom design a much simpler 2-layer or 4-layer board(s)
to support the remaining parts.
Often there is a more-or-less standardized interface --
carrier boards and stacking modules,<ref>
[[Robotics/Computer Control/The Interface/SBC and multichip modules#Stacking modular connector boards]]
</ref>
FPGA Mezzanine Card (FMC)<ref>
[[Wikipedia: FMC – FPGA Mezzanine Card]]
</ref>
for I/O modules to connect to a FPGA;
etc.<ref>
[http://electronics.stackexchange.com/questions/127597/custom-fpga-pcb-design-tips "custom FPGA PCB Design tips"].
</ref>
== Trace clearance ==
The width and spacing of conductors (or "traces") on a PCB is very important. If the traces are too close, solder can short adjacent traces, and the PCB will be difficult to construct or repair. If too far apart, the PCB may be too large and expensive. When a PCB carries high frequencies, traces may need to be exact widths and lengths to control the characteristic impedance of the trace.
The "clearance" is the shortest distance through the air between two conductors.
<ref>
"Creepage and clearance distances"
[https://b2b.harting.com/Webhelp/EGds/WebHelp/GBgdsCreepage_and_clearance_distances.htm]
</ref>
For mains-powered information technology equipment, UL 60950-1 gives the minimum allowed PCB spacing.
With typical 120-230 VAC mains input, creepage between primary
and low-voltage secondary circuitry per UL/IEC 60950 should be
6.4 mm minimum.
<ref>
"The basics of PCB (printed circuit board) layout:
guidelines for switching power supplies (SMPS) design"
[http://www.smps.us/layout.html]
</ref>
<ref>
"Spacing between PCB traces
for various voltage levels:
circuit board layout guidelines"
[http://www.smps.us/pcbtracespacing.html]
</ref>
<ref>
Clearance Calculator and Creepage Calculator
[http://www.creepage.com/]
</ref>
<ref>
Milton Hilliard.
"PCB Layout: The Impact of Lightning and Power-Cross Transients".
Compliance Engineering 2003.
[http://www.ce-mag.com/archive/03/01/hilliard.html]
</ref>
The IPC recommends a clearance between tracks of 0.0254 mm/V on uncoated boards expected to ever be used above 10,000 ft, 0.005 mm/V on uncoated boards expected to always stay below 10,000 feet, and 0.00305 mm/V between traces under a solder mask.
Some safety standards require a minimum of 8 mm clearance between mains input (240 V) and signal tracks.
<ref>
"PCB Design Layout Rules Recommendation".
[http://www.electronics-project-design.com/PCB-Design.html]
</ref>
<ref>
IPC2221 section 6.3
[http://www.the-bao.de/divers/ipc2221.pdf]
</ref>
Other standards related to clearance and creepage include
ECMA 287, IEC 60664,
NEMA 1-111-1, NEMA 1-111-2,
etc.
Some designs cut the ground plane or the entire PCB in strategic locations to control the return paths of currents. The usual desire is to keep high voltages or frequencies away from sensitive portions of a circuit. The actual properties of the design are critical, because in some cases, cutting the ground plane makes the PCB into an antenna that radiates radio noise into nearby equipment.
== Remove less copper ==
Removing large areas of copper wastes etchant and can increase waste (although commercial fabricators reclaim the copper and regenerate the etchant). Also, a PCB etches more consistently and tends to resist warping if all regions have the same average ratio of copper to bare board. Therefore, designers may widen connectors, leave unconnected copper in place, or cover large areas of what would otherwise be bare board with arrays of small, electrically isolated copper diamonds or squares but these can lead to increased emi and emc problems unless grounded.
== Fiducial ==
Most PCBs have alignment marks (called fiducials) and tooling holes to align layers.
The preferred fiducial is a solid circle 1 mm diameter.<ref>
[http://www.alternatezone.com/electronics/files/PCBDesignTutorialRevA.pdf "PCB Design Tutorial"] by David L. Jones. "The fiducial mark should be a circular pad on the copper layer of diameter 1.5mm"
</ref><ref>
[http://www.mvdmoosdijk.nl/Electronics/Art/Fiducials/fiducials.htm "Fiducial Mark Design Guidelines"]
"Some say that the optimal fiducial mark is a solid filled circle. ...
The minimum diameter of the fiducial mark should be 1 mm (0.040 in)."
</ref><ref>
[http://www.cpielectronics.com/info/pdf/CPI_Manufacturing%20Design%20Guidelines.pdf "CPI Electronics: Manufacturing Design Guidelines"]
"Fiducial Mark: A 1 mm (+/- 0.1) circle or 2 mm (+/- 0.1) cross is the preferred pattern."
</ref><ref>
[http://www.lil-brother.com/index.php?option=com_fireboard&Itemid=29&id=38&catid=11&func=fb_pdf "Centroids and Fiducials"]
"please make sure your fiducials are a minimum 1 mm center pad diameter."
</ref><ref>
[http://www.dynatechsmt.com/smp200.cfm Dynatech: "Samsung SMP200 Screen Printer"]
"Fiducial Size: 0.020~0.157" (0.5~4.0mm)"
</ref><ref>
[http://web.archive.org/web/20090912052354/http://www.tracktronics.com.au/pdf/PicknPlace_Fiducials.pdf Tracktronics: "Pick and Place Fiducial Requirements"]
"Smallest size of any fiducial mark is 0.5mm. Recommended size is 0.75mm. The recommended shape is a
circle, followed by square, then cross hair."
</ref><ref>
[http://www.xs4all.nl/~tersted/PDF_files/South%20Bay%20Circuits/PCA_Guide.pdf South Bay Circuits: "Manufacturability Guidelines For Printed Circuit Board Assemblies"]
"The Surface Mount Equipment Manufacturers Association (SMEMA) has standardized on design rules for fiducials. These rules are supported by the IPC and adopted by SBC ... The optimum fiducial is a solid filled circle. ... Size: The ... diameter of the fiducial mark ... 0.040” ... 1 mm is preferred. Fiducial marks should not vary in size on the same PCB more than 0.001” (0.025mm)"
</ref><ref>
[http://web.archive.org/web/20060312155054/http://www.boardassembly.com/Fiducial%20Mark%20requirement.pdf Acme PCB Assembly: "Fiducial mark requirement"]
"The shape of the Fiducial shall be a solid filled circle. The minimum diameter of the Fiducial Mark shall be 1.00 mm [0.040 inch]."
</ref>
These permit the PCB to be mounted in equipment that automatically places and solders components. Some designs also have quality control patterns to measure soldering and etching processes. In some cases, the test patterns are on break-off tabs that can be removed before the PCB is installed.
== Via ==
Signal traces on different layers may be connected together through plated holes called ''vias''<ref>https://www.epiccolo.com/articles/pcb-vias-guide</ref>. The via basic structure include a drilled hole which is electroplated with copper and pads which are circular copper elements encircling the plated hole on the copper layers. High-density PCBs may have ''blind vias'', which are visible only on one surface, or ''buried vias'', which are visible on neither, but these are considered a cost adder because they require multiple lamination stages. The most simple via is the multilayer via (sometimes called also PTV) which is drilled all the way through from one side of the board to the other. Typically, there is no cost adder for any number of reasonable via drills per PCB, the cost adder may come when requiring via with epoxy filling (VIPPO or via in pad) or when the drill is very small.
== Solder mask and silkscreen ==
{{wikipedia| reference designator#Reference designations}}
A solder mask is a plastic layer that resists wetting by solder (the solder is said to "bead up"), and keeps islands of solder from running together. It also protects the outside conductors layers from abrasion and corrosion. Without the solder mask, the fibreglass-reinforced epoxy appears a translucent off-white. Solder masks are usually green, but they may be found in other colours.
A silkscreen legend on the top or bottom surface of the board provides readable information about component part numbers and placement. This aids in manufacturing and repair. To aid manual construction and repair, diodes, capacitors and integrated circuits are sometimes oriented in the same direction.
New technology allows for the component designators to be printed directly onto the board surface, saving time and money by doing away with silkscreens. This is sometimes done by a special inkjet printer. A similar process has experimentally produced solder masks.
== Basic guidelines ==
Radio transmitters and radio receivers are difficult to design. PCB designers working on them must minimize parasitic effects due to layout of components, or take them into account with a ''general model'' and use simulation software such as SPICE.
Fortunately, many practical circuits can be laid out using a much simpler ''lumped element model''.
'''PCB layout Basic guidelines''':
* it is often a good idea to have made a prototype circuit using point-to-point construction or wire wrap, as you will have solved certain basic issues to do with component selection: (e.g., should I use a 1/4 watt resistor here, or do I need 1/2 watt?)
* consider physical constraints on the assembled board's size and heat dissipation requirements; choose your heat sinks if needed.
* consider carefully the physical size of the components you are laying out; the circuit schematic doesn't tell you this. Equivalent components often have different packages.
* How do the components attach to the board? Are they surface mount components? or do they require holes, screws, washers, etc.?
* are there mechanical parts directly mounted to the board? For example, switches or variable resistors?
* How will the board mount in its container? What stresses (shock, strain, shear) will there be upon it and upon components?
* How will the board connect to its power source? What other connectors will be required (e.g., signal inputs, outputs)?
* use construction paper and a pencil and sketch the board in its actual size; or use component layout software that includes information about the component outlines.
* decide appropriate widths for each of the signal traces; this depends on the current each trace is expected to carry.
* decide whether you will have a single-layer board, 2-layer, or multi-layer based on the circuit complexity and fabrication costs.
* begin by placing component outlines, then by placing signal traces; leave a little room around each for tolerances.
* for a single layer board, spend more effort to avoid having traces cross each other; play with component placement or run traces underneath components; sometimes a jumper wire is needed.
* in 2-layer and multilayer boards simply run the traces on different layers, and use plated-through holes to jump from one layer to another.
* try to predict and avoid assembly errors: where there are multiple components of the same kind, or where pins have a polarity (e.g., electrolytic capacitors), try to place them in parallel and orient the positive pin in the same direction.
* If your PCB design software<ref>[https://discrete.co.in/blog/list-of-best-pcb-design-software-and-tools "Top Most Used PCB Design Software & Tools (For PCB Designers)"]</ref> has a DRC (design rule check), use it.
'''PCB layout guidelines''' for RF circuits on a 2-layer or multilayer board:
* identify the critical parts of the circuit and lay them out first
* have one of the layers act as a continuous ground plane.
* if signal traces are constant width and height above the ground plane, and are properly terminated, then their characteristic impedance is more well-behaved and may be calculated.
* avoid sharp corners.
* keep signal traces and component leads as short as possible.
* inputs and outputs should be far apart, so that RF energy will not leak back from output to input. stages should line up, rather than snake around.
* decouple the RF parts of the circuit from the DC parts of the circuit.
* shield AF and IF components from RF components.
* high-speed communication (over 100 Mb/s per wire) generally requires point-to-point connections, rather than multi-point multi-drop bus connections. Communication over 622 Mb/s per wire requires even more specialized techniques and careful connector selection.<ref>
[http://www.latticesemi.com/lit/docs/technotes/tn1033.pdf Lattice Technical Note TN1033 "High-Speed PCB Design Considerations"]
</ref>
Many people have a checklist of things to review before sending the Gerber layout files to the PCB fabricator.<ref>
[http://www.xilinx.com/products/design_resources/signal_integrity/si_pcbcheck.htm Xilinx PCB Design Checklist]
</ref><ref>
[http://web.archive.org/web/20111215215947/http://www.duke.edu/~kya/pcb.pdf "Steve’s PCB layout checklist"]
</ref><ref>
[http://airborn.com.au/method/doc.html "standard PCB documentation file"]: a list of diagrams and "source" files that contain all the information required to fabricate or further develop the product.
</ref><ref>
[http://www.nexlogic.com/services/pcb-design/pcb-design-for-assembly/pcb-design-for-assembly-checklist.aspx]
</ref><ref>
[http://www.nexlogic.com/services/pcb-design/pcb-design-for-assembly/pcb-design-for-assembly-checklist.aspx "Golden Rules For Preventing Parts Headaches At PCB Layout"]
</ref><ref>
http://www.volersystems.com/v-2010-issue-1/pcb-layout-checklist Voler Systems "PCB Layout Checklist",
based on
[http://www.aqdi.com/check.htm Hank Wallace: "Electronics Design Checklist"]
</ref><ref>
http://www.adcom.co.il/engineering/pcb_chl.htm Adcom: "PCB layout checklist"
</ref><ref>
[http://int.xscale-freak.com/XSDoc/PXA27X/28001301.pdf "Intel® PXA27x Processor Family Design Check List" section 4.0 "PCB Layout Check List"]
</ref><ref>
[http://www.cepdinc.com/presentations/PcbLayoutGuidelines_files/frame.htm "PCB Layout Checklist"]
</ref>
<ref>[https://hxdcircuit.com/pcb-material-selector/ Online PCB material selector for comparing Dk, Df, Tg, and application requirements]</ref>
{{wikipediapar|| design for manufacturability}}
{{wikipediapar|| design for manufacturability (PCB)}}
* [http://FrontDoor.biz/HowToPCB/ How To Be A Circuit Board Designer (tutorial)]
* [[Kicad]] is a Wikibook that covers one popular software tool used for PCB layout.
* [[Chip Design Made Easy]] describes some issues that effect both chip designers and PCB designers, such as EMI.
* [[Robotics:_Design_Basics:_Design_software#Schematic_Capture_.26_PCB]]
* [[Wikipedia: schematic capture]]
* [[Wikipedia: electronics]]
* [[Wikipedia: electronics manufacturing]]
* [[Wikipedia: electromagnetic interference]]
* [[Wikipedia: circuit design]]
* [[Wikipedia: schematic]]
* [[Wikipedia: printed circuit board]]
* [[Wikipedia: Gerber format]]
* [[Wikipedia: ground plane]] and [[Wikipedia: power plane]]
* [[Wikipedia: power electronic substrate]]
* [[Wikipedia: characteristic impedance]]
* [[Wikipedia: fiducial]]
* [[Wikipedia: SPICE]]
* [[Wikipedia: electrical network]]
* [[Wikipedia: lumped element model]]
* [[Wikipedia: point-to-point construction]]
* [[Wikipedia: wire wrap]]
* some components require [[Wikipedia: heat sink]]s for heat dissipation
* [[Wikipedia: surface-mount technology]]
* [[Wikipedia: signal trace]]
* [[Wikipedia: electric current]]
* [[Wikipedia: electrolytic capacitor]]
* [[Wikipedia: electrical termination]]
* [[Wikipedia:de:Leiterplattenentflechtung]]
== References ==
[https://rushpcb.com/free-pcb-design/ Free PCB Design]
<references/>
== External links ==
{{wikipediapar||printed circuit board}}
{{wikipediapar||electromagnetic compatibility}}
{{BookCat}}
[[cs:Praktická elektronika/Výroba plošných spojů]]
nf70uubkcu5374si7zy86ul10282gs5
4640445
4640442
2026-06-16T13:49:29Z
MathXplore
3097823
[[WB:REVERT|Reverted]] edit by [[Special:Contributions/RansiwewikiHxdCircuit|RansiwewikiHxdCircuit]] ([[User talk:RansiwewikiHxdCircuit|talk]]) to last version by Lp0 on fire
4628404
wikitext
text/x-wiki
The efficient laying out of traces on a PCB is a complex skill, and requires much patience. This task has been made vastly easier with the advent of readily available PCB layout software, but it is still challenging.
Usually an electronics or electrical engineer designs the circuit, and a layout specialist designs the PCB. PCB design is a specialized skill. There are numerous techniques and standards used to design a PCB that is easy to manufacture and yet small and inexpensive.
These are the usual steps in PCB layout for most customers that allow the customer maximum flexibility to make changes to embrace the normal engineering changes that happen during the design process. By utilizing this structured approach maximizes the engineering teams' efforts to design and build a successful product.
1. Schematic / Components design review. <br>
2. Determine what footprints are required to be built, and build them incorporating 3D models. <br>
3. Board outline definition process. DXF board outline file import is the most stable method. <br>
4. Component placement. <br>
5. Customer review of component placement. <br>
6. Power and Ground Plane assignment. <br>
7. Customer review of Power Plane and Ground Plane Assignments. <br>
8. Fanout. <br>
9. Critical net routing. <br>
10. Customer review of critical net routing. <br>
11. Non critical net routing. <br>
12. Customer review. <br>
13. Silkscreen adjustment and board part number assignment/placement. <br>
14. Gerber, DXF, Step, IDF/LDF final file generation for final customer review and approval. <br>
15. Final cleanup and any touch up required from customer feedback. <br>
<ref>[https://www.911eda.com/pcb-design-process-faqs Standard PCB Layout Process Flow (911EDA)]
</ref>
==Copper Thickness==
The vast majority of PCBs are manufactured with "1 ounce copper" on the outer layers. If there are inner layers, they are almost always manufactured with "1/2 ounce copper".
The thickness of the copper layer on the PCB affects the behaviour of the circuit. PCB copper thickness is usually measured in ''ounces per square foot'', frequently just called ounces. It can also be given in micrometres, inches or mils (thousandths of an inch). The measurements for commonly used thickness are given below.
{| class=wikitable align=center
!oz/ft²!!μm!!in!!mil
|-
|0.5||17.5||0.0007||0.7
|-
|0.75||25.5||0.0010||1.0
|-
|1||35||0.0014||1.4
|-
|2||71<ref>
[http://www.national.com/kbase/category/Packaging_Process.html#28 National Semiconductor knowledge base: "What is the translation between PCB copper thickness in ounces, inches, and mm?"]
</ref>||0.0028||2.8
|-
|3||105||0.0042||4.2
|}
As always, the thickness of a thin slab of metal with a given top surface area is always exactly
::<math>thickness = { mass \over { area \times density } }</math>
The area is "1 square foot" (144 square inches), the density of copper is 8.96 mg/mm<sup>3</sup> = 5.18 ounce/(inch<sup>3</sup>),
and usually the mass is "1 ounce of copper", but occasionally 1/2, 2, 3, or 4 oz.
==Trace Width==
Different widths of traces have different properties that could affect the operation of the circuit. For, example, a thin trace has a higher resistance than a thick one, and can therefore carry less current or will heat up more for the same current.
Due to the large number of tables and charts, this information is presented on different pages:
*For current capacities, see [[/Trace Current Capacity/]].
Most manufacturers can manufacture a minimum trace width of 0.006 inch.
(Many can manufacture traces 0.004 inch wide).
Such minimum-size traces are more than adequate for most digital and analogue signals.
== Footprints or Geometries==
The manufacturer of each part recommends a "footprint", a copper pattern for the part to be soldered to the PCB.
Sometimes the footprint also includes a drawing of the outline of the part.
Some people put that outline on the silk screen.
Other people make a "virtual outline" that shows up on the computer screen and on the assembly drawings, but not on the actual PCB.
Footprints for capacitors and batteries should include plus sign (+) polarity marking on the silk screen next to the positive pad.
(The positive-end-indicator stripe on the capacitor itself should be placed nearest that plus sign).
Footprints for LEDs and other diodes should have a polarity mark -- the "diode arrow symbol" (triangle + bar), or at least the bar, in silk-screen. The bar matches the cathode-end-indicator stripe on the diode itself.
<ref>
[http://www.screamingcircuits.com/Portals/0/documents/LED%20markation%20at%20Screaming%20Circuits.pdf Screaming Circuits: "LED and diode markation guidelines"]
</ref>
Footprints for ICs should have a polarity mark "dot" or "1" near pin 1.
Most people give pin 1 a "squared-off" pad, and all other pins a "rounded pad".
Some people also like additional "10", "20", "30", etc., marks in silkscreen next to pin 10, pin 20, pin 30, etc.
The polarity mark must be visible after mounting the part so it can be seen after inspection.
(It's useless to put the polarity mark where no one can see it).
It's okay to put the polarity mark underneath a tubular-packaged diode, since people can look "around" the mounted diode and see the polarity mark.
<ref>
[http://www.divsys.com/servicesproducts/assembly/LayoutGuidelines.asp?view=print Diversified Systems: "Production electronic assembly layout guidelines: Designating polarity"]
</ref>
== Holes ==
There are 3 general types of holes:
A '''via''' -- literally, a "way" to get from one layer of copper to another layer of copper.
The vias on a particular PCB should all be the same size.
Some people[http://www.itee.uq.edu.au/~metr2800/Lecture%20Notes/pcbdesign.html] recommend 0.025" (0.6mm) diameter via holes, surrounded by a 0.0394" (1.0mm) diameter via copper pad, if at all possible.
Some very dense SMT boards require smaller vias.
Some manufacturers can handle 0.012" diameter via holes, surrounded by 0.024" diameter via pad.
<!-- is there an industry-wide standard recommendation as of this year? -->
Since there is no actual component put into a via, many PCBs are manufactured with "plugged" vias (vias completely filled with metal) and "tented" vias (vias completely covered with solder mask).
A '''through-hole''' -- many components (called "through-hole components") require a hole (a "through hole") for each pin.
The part manufacturer should specify a "footprint" including the location and size of each hole.
If there is no recommendation, common practice is
* round leads: add 6 mils to the nominal round lead diameter to get the recommended PCB hole diameter.
* Rectangular leads: find the lead diagonal (<math>\textstyle \sqrt{x^2 + y^2}</math>). Then add 6 mils to get the recommended PCB hole diameter. ( 6 mils ≈ 0.15 mm )[http://www.samtec.com/tools/pcb-hole-sizes.aspx][http://forum.sparkfun.com/viewtopic.php?f=20&t=22258]
* voltage regulators and other components in TO-220 packages typically fit in 0.040" (1 mm) holes. Some people prefer a "universal layout" that supports practically any 3-pin regulator.<ref name="cook">
David Cook.
[http://www.robotroom.com/PCB-Layout-Tips.html "PCB Layout Tips"].
</ref>
* DIP package ICs and TO-95 typically fit in 0.031″ diameter holes<ref name="cook" /> (0.8 mm diameter).<ref>
[http://www.microwaves101.com/encyclopedia/drills.cfm "Drill sizes"]
</ref>
* "The component lead - hole clearance should be 0.4 mm" [http://olimex.com/pcb/dfm.html]
<!-- yes, these conflict. Which is right? -->
* "The optimum pad diameter for a through-hole component is twice its finished hole diameter."[http://www.diversifiedsystemsinc.com/ServicesProducts/Assembly/DesignGuidelines.asp]
* 0.1" pitch pin headers from many manufacturers<ref>
[[Wikipedia: pin header]]
</ref> are typically 0.025 inch (0.64 mm) square. Manufacturers typically recommend a hole 0.040 inch (1.00 mm) diameter.<ref>
[http://solutions.3m.com/wps/portal/3M/en_US/Interconnect/Home/Products/ProductCatalog/Catalog/?PC_7_RJH9U5230O73D0ISNF9B3C3SI1000000_nid=JKWCWNGKG1itWK7G49LP38glPNXPZVDPRRbl "3M Pin Strip Header, 961 Series"]
</ref><ref>
[http://www.molex.com/pdm_docs/sd/022235024_sd.pdf "Molex KK 254 header"]
</ref> It should be noted that 0.025 inch square terminals can be used for AWG 30 wire-wrapping as well.
A '''tooling hole or mounting holes''' ...
A "tooling hole" -- used to temporarily attach the board to test fixtures, during assembly and test. They are almost always 0.125" in diameter, unplated , and placed in opposite corners. Two are required, but a third can prevent reverse installation of the PCB. It is possible to use these as mounting holes for the end-use of the PCB.
Many manufacturers publish their "standard hole sizes" (standard drill bit sizes minus the standard barrel thickness of through-hole metal plating).
The person running the drill press prefers to see standard sizes; otherwise they are forced to either
(a) pick the next-smaller standard drill bit -- then the physical part won't fit in the hole;
(b) pick the next-larger drill bit -- this pushes the through-hole metal plating out, possibly hitting some internal trace and rendering the entire board unusable; or
(c) reject the board as unmanufacturable.
To avoid all 3 problems, often PCB designers "round up" non-standard hole sizes to the next larger standard hole size -- i.e., often holes for DIP packages are rounded up to 0.9 mm diameter -- and then run the DRC check.
If the DRC finds any traces that are now "too close" to the bigger hole, the designer pushes those traces a safe distance away before sending the design to the manufacturer.
== Board Thickness and Layers ==
The vast majority of PCBs have an overall thickness of 1/16 inch (1.58 mm).
Some very dense SMT boards have an overall thickness of 1/32 inch (0.79 mm), which allows smaller via holes to be drilled, allowing denser packing.
Occasionally boards are made with an overall thickness of 3/32 inch (2.3 mm), which makes it more rigid (but requires bigger via holes).
Often some or all layers are almost entirely covered with a "copper pour" ("ground plane" or "power plane").
Such pours typically have a signal-to-pour clearance of 0.010 inch and clearance from the cut edge (perimeter of the board edge) to pour of 0.020 inch[http://www.etpdesign.com/Technical/ThruHolePCBRules.pdf].
''(more [http://techref.massmind.org/techref/pwb_layers.htm layer stackup tips])''
Most PCBs have between one and twenty conductive layers laminated (glued) together in a sandwich with insulating plastic. PCBs with more than two layers help construct complex or dense circuits. They are not always used because they are more expensive, and the inner layers are more difficult to inspect and repair.
In more complex PCBs, two or more of the layers are dedicated to providing ground and power. These ''ground planes'' and ''power planes'' distribute power well. They also prevent radio waves from antennas unintentionally formed by tracks. These planes are rectangular sheets of foil that occupy entire layers (except for small holes to avoid unwanted connection to vias and through-hole components). They distribute electrical power and heat better than narrow traces. Sometimes solid metal PCBs with thin layers of insulation are used. The ''power electronic substrate'' carries away waste heat when air cooling is impossible.
Four-layer PCBs with a ground and power plane are often used in high-quality, but cost-conscious audio, avionics and medical electronics. Most consumer products have one or two layers.
If you want to use a BGA-packaged part, that one part typically dictates the number of layers the PCB must have.
With a few low-density BGA packages, it's possible to use a 2-layer PCB<ref>
Abhay Nadkarni.
[http://
www.cypress.com/?docID=25208 AN43841 "56-Ball BGA PCB Layout Guidelines"]
</ref><ref>
[https://www.digikey.com/en/product-highlight/n/nxp-semi/i-mx-rt1040-crossover-mcu "NXP i.MX RT1040 Crossover MCUs"].
11x11 mm 169-ball package intended for two-layer PCB design
</ref><ref>
[http://www.altera.com/literature/an/an114.pdf "http://www.altera.com/literature/an/an114.pdf"]
</ref><ref>
[http://www.alibaba.com/showroom/2--layer-bga-pcb.html 2-layer BGA PCB]
</ref>
Some BGA packages require at least 4-layer PCBs,
and many BGA packages force designers to use even more PCB layers.<ref>
[http://processors.wiki.ti.com/index.php/General_hardware_design/BGA_PCB_design "General hardware design/BGA PCB design"]
</ref><ref>
[http://www.latticesemi.com/lit/docs/package/tn1074.pdf "PCB Layout Recommendations for BGA Packages"]
Lattice Technical Note TN1074.
[http://www.latticesemi.com/~/media/Documents/ApplicationNotes/PCBLayoutRecommendationsforBGAPackages.ashx]
</ref><ref>
Lattice.
[http://www.digikey.com/Web%20Export/Supplier%20Content/lattice-semiconductor-220/pdf/lattice-wp-machxo-board-layout-techniques.pdf?redirected=1 "Low cost board layout techniques for designing with PLDs in BGA packages"]
</ref><ref>
[http://www.pcb-experts.com/Escape-routing-under-fine-pitched-BGAs.html "Escape routing under fine pitched BGAs."]
</ref><ref>
[http://www.xilinx.com/support/documentation/application_notes/xapp489.pdf "Four- and Six-Layer, High-Speed PCB Design for the Spartan-3E FT256 BGA Package"]
</ref><ref>
[http://www.pcbstandards.com/forums/showthread.php?t=1777 "How many layers needed for 1000 pin bga"]
</ref>
For example, a BGA package with 7 or 8 rows of balls (from the center to the perimeter) generally a minimum of 6 layers to fan-out, including a power plane and a ground plane.<ref>
Section 5.2: "How many PCB layers to fan-out the BGA", from
[http://www.nxp.com/documents/application_note/AN10778.pdf "NXP AN10778: PCB layout guidelines for NXP MCUs in BGA packages"]
</ref><ref>
Abhay Maheshwari and Soon-Shin Chee.
[http://bmc.bu.edu/bmc/asd/tester/xapp157.pdf "Board Routability Guidelines with Xilinx Fine-Pitch BGA Packages"]
</ref>
Some BGA packages with over 1000 pins and a pin-pitch of 0.8 mm require at least 8 layers and blind, buried, and micro-vias.<ref>
Charles Pfeil.
[http://www.mentor.com/products/pcb-system-design/resources/bga-breakouts-routing/upload/bga-breakout-challenges.pdf "BGA Breakout Challenges"]
</ref>
Often all the electronic parts of a system work fine with a 4-layer board or even a 2-layer board except for one part in a BGA package.
Rather than designing one big full-custom 10-layer board to hold everything,
many people prefer -- at least for the first prototype --
to partition the design into two PCBs -- or more.
One board that that includes that BGA part --
often a commercial off-the-shelf (COTS) board,
preferably one that includes as much as possible of the rest of the system --
and custom design a much simpler 2-layer or 4-layer board(s)
to support the remaining parts.
Often there is a more-or-less standardized interface --
carrier boards and stacking modules,<ref>
[[Robotics/Computer Control/The Interface/SBC and multichip modules#Stacking modular connector boards]]
</ref>
FPGA Mezzanine Card (FMC)<ref>
[[Wikipedia: FMC – FPGA Mezzanine Card]]
</ref>
for I/O modules to connect to a FPGA;
etc.<ref>
[http://electronics.stackexchange.com/questions/127597/custom-fpga-pcb-design-tips "custom FPGA PCB Design tips"].
</ref>
== Trace clearance ==
The width and spacing of conductors (or "traces") on a PCB is very important. If the traces are too close, solder can short adjacent traces, and the PCB will be difficult to construct or repair. If too far apart, the PCB may be too large and expensive. When a PCB carries high frequencies, traces may need to be exact widths and lengths to control the characteristic impedance of the trace.
The "clearance" is the shortest distance through the air between two conductors.
<ref>
"Creepage and clearance distances"
[https://b2b.harting.com/Webhelp/EGds/WebHelp/GBgdsCreepage_and_clearance_distances.htm]
</ref>
For mains-powered information technology equipment, UL 60950-1 gives the minimum allowed PCB spacing.
With typical 120-230 VAC mains input, creepage between primary
and low-voltage secondary circuitry per UL/IEC 60950 should be
6.4 mm minimum.
<ref>
"The basics of PCB (printed circuit board) layout:
guidelines for switching power supplies (SMPS) design"
[http://www.smps.us/layout.html]
</ref>
<ref>
"Spacing between PCB traces
for various voltage levels:
circuit board layout guidelines"
[http://www.smps.us/pcbtracespacing.html]
</ref>
<ref>
Clearance Calculator and Creepage Calculator
[http://www.creepage.com/]
</ref>
<ref>
Milton Hilliard.
"PCB Layout: The Impact of Lightning and Power-Cross Transients".
Compliance Engineering 2003.
[http://www.ce-mag.com/archive/03/01/hilliard.html]
</ref>
The IPC recommends a clearance between tracks of 0.0254 mm/V on uncoated boards expected to ever be used above 10,000 ft, 0.005 mm/V on uncoated boards expected to always stay below 10,000 feet, and 0.00305 mm/V between traces under a solder mask.
Some safety standards require a minimum of 8 mm clearance between mains input (240 V) and signal tracks.
<ref>
"PCB Design Layout Rules Recommendation".
[http://www.electronics-project-design.com/PCB-Design.html]
</ref>
<ref>
IPC2221 section 6.3
[http://www.the-bao.de/divers/ipc2221.pdf]
</ref>
Other standards related to clearance and creepage include
ECMA 287, IEC 60664,
NEMA 1-111-1, NEMA 1-111-2,
etc.
Some designs cut the ground plane or the entire PCB in strategic locations to control the return paths of currents. The usual desire is to keep high voltages or frequencies away from sensitive portions of a circuit. The actual properties of the design are critical, because in some cases, cutting the ground plane makes the PCB into an antenna that radiates radio noise into nearby equipment.
== Remove less copper ==
Removing large areas of copper wastes etchant and can increase waste (although commercial fabricators reclaim the copper and regenerate the etchant). Also, a PCB etches more consistently and tends to resist warping if all regions have the same average ratio of copper to bare board. Therefore, designers may widen connectors, leave unconnected copper in place, or cover large areas of what would otherwise be bare board with arrays of small, electrically isolated copper diamonds or squares but these can lead to increased emi and emc problems unless grounded.
== Fiducial ==
Most PCBs have alignment marks (called fiducials) and tooling holes to align layers.
The preferred fiducial is a solid circle 1 mm diameter.<ref>
[http://www.alternatezone.com/electronics/files/PCBDesignTutorialRevA.pdf "PCB Design Tutorial"] by David L. Jones. "The fiducial mark should be a circular pad on the copper layer of diameter 1.5mm"
</ref><ref>
[http://www.mvdmoosdijk.nl/Electronics/Art/Fiducials/fiducials.htm "Fiducial Mark Design Guidelines"]
"Some say that the optimal fiducial mark is a solid filled circle. ...
The minimum diameter of the fiducial mark should be 1 mm (0.040 in)."
</ref><ref>
[http://www.cpielectronics.com/info/pdf/CPI_Manufacturing%20Design%20Guidelines.pdf "CPI Electronics: Manufacturing Design Guidelines"]
"Fiducial Mark: A 1 mm (+/- 0.1) circle or 2 mm (+/- 0.1) cross is the preferred pattern."
</ref><ref>
[http://www.lil-brother.com/index.php?option=com_fireboard&Itemid=29&id=38&catid=11&func=fb_pdf "Centroids and Fiducials"]
"please make sure your fiducials are a minimum 1 mm center pad diameter."
</ref><ref>
[http://www.dynatechsmt.com/smp200.cfm Dynatech: "Samsung SMP200 Screen Printer"]
"Fiducial Size: 0.020~0.157" (0.5~4.0mm)"
</ref><ref>
[http://web.archive.org/web/20090912052354/http://www.tracktronics.com.au/pdf/PicknPlace_Fiducials.pdf Tracktronics: "Pick and Place Fiducial Requirements"]
"Smallest size of any fiducial mark is 0.5mm. Recommended size is 0.75mm. The recommended shape is a
circle, followed by square, then cross hair."
</ref><ref>
[http://www.xs4all.nl/~tersted/PDF_files/South%20Bay%20Circuits/PCA_Guide.pdf South Bay Circuits: "Manufacturability Guidelines For Printed Circuit Board Assemblies"]
"The Surface Mount Equipment Manufacturers Association (SMEMA) has standardized on design rules for fiducials. These rules are supported by the IPC and adopted by SBC ... The optimum fiducial is a solid filled circle. ... Size: The ... diameter of the fiducial mark ... 0.040” ... 1 mm is preferred. Fiducial marks should not vary in size on the same PCB more than 0.001” (0.025mm)"
</ref><ref>
[http://web.archive.org/web/20060312155054/http://www.boardassembly.com/Fiducial%20Mark%20requirement.pdf Acme PCB Assembly: "Fiducial mark requirement"]
"The shape of the Fiducial shall be a solid filled circle. The minimum diameter of the Fiducial Mark shall be 1.00 mm [0.040 inch]."
</ref>
These permit the PCB to be mounted in equipment that automatically places and solders components. Some designs also have quality control patterns to measure soldering and etching processes. In some cases, the test patterns are on break-off tabs that can be removed before the PCB is installed.
== Via ==
Signal traces on different layers may be connected together through plated holes called ''vias''<ref>https://www.epiccolo.com/articles/pcb-vias-guide</ref>. The via basic structure include a drilled hole which is electroplated with copper and pads which are circular copper elements encircling the plated hole on the copper layers. High-density PCBs may have ''blind vias'', which are visible only on one surface, or ''buried vias'', which are visible on neither, but these are considered a cost adder because they require multiple lamination stages. The most simple via is the multilayer via (sometimes called also PTV) which is drilled all the way through from one side of the board to the other. Typically, there is no cost adder for any number of reasonable via drills per PCB, the cost adder may come when requiring via with epoxy filling (VIPPO or via in pad) or when the drill is very small.
== Solder mask and silkscreen ==
{{wikipedia| reference designator#Reference designations}}
A solder mask is a plastic layer that resists wetting by solder (the solder is said to "bead up"), and keeps islands of solder from running together. It also protects the outside conductors layers from abrasion and corrosion. Without the solder mask, the fibreglass-reinforced epoxy appears a translucent off-white. Solder masks are usually green, but they may be found in other colours.
A silkscreen legend on the top or bottom surface of the board provides readable information about component part numbers and placement. This aids in manufacturing and repair. To aid manual construction and repair, diodes, capacitors and integrated circuits are sometimes oriented in the same direction.
New technology allows for the component designators to be printed directly onto the board surface, saving time and money by doing away with silkscreens. This is sometimes done by a special inkjet printer. A similar process has experimentally produced solder masks.
== Basic guidelines ==
Radio transmitters and radio receivers are difficult to design. PCB designers working on them must minimize parasitic effects due to layout of components, or take them into account with a ''general model'' and use simulation software such as SPICE.
Fortunately, many practical circuits can be laid out using a much simpler ''lumped element model''.
'''PCB layout Basic guidelines''':
* it is often a good idea to have made a prototype circuit using point-to-point construction or wire wrap, as you will have solved certain basic issues to do with component selection: (e.g., should I use a 1/4 watt resistor here, or do I need 1/2 watt?)
* consider physical constraints on the assembled board's size and heat dissipation requirements; choose your heat sinks if needed.
* consider carefully the physical size of the components you are laying out; the circuit schematic doesn't tell you this. Equivalent components often have different packages.
* How do the components attach to the board? Are they surface mount components? or do they require holes, screws, washers, etc.?
* are there mechanical parts directly mounted to the board? For example, switches or variable resistors?
* How will the board mount in its container? What stresses (shock, strain, shear) will there be upon it and upon components?
* How will the board connect to its power source? What other connectors will be required (e.g., signal inputs, outputs)?
* use construction paper and a pencil and sketch the board in its actual size; or use component layout software that includes information about the component outlines.
* decide appropriate widths for each of the signal traces; this depends on the current each trace is expected to carry.
* decide whether you will have a single-layer board, 2-layer, or multi-layer based on the circuit complexity and fabrication costs.
* begin by placing component outlines, then by placing signal traces; leave a little room around each for tolerances.
* for a single layer board, spend more effort to avoid having traces cross each other; play with component placement or run traces underneath components; sometimes a jumper wire is needed.
* in 2-layer and multilayer boards simply run the traces on different layers, and use plated-through holes to jump from one layer to another.
* try to predict and avoid assembly errors: where there are multiple components of the same kind, or where pins have a polarity (e.g., electrolytic capacitors), try to place them in parallel and orient the positive pin in the same direction.
* If your PCB design software<ref>[https://discrete.co.in/blog/list-of-best-pcb-design-software-and-tools "Top Most Used PCB Design Software & Tools (For PCB Designers)"]</ref> has a DRC (design rule check), use it.
'''PCB layout guidelines''' for RF circuits on a 2-layer or multilayer board:
* identify the critical parts of the circuit and lay them out first
* have one of the layers act as a continuous ground plane.
* if signal traces are constant width and height above the ground plane, and are properly terminated, then their characteristic impedance is more well-behaved and may be calculated.
* avoid sharp corners.
* keep signal traces and component leads as short as possible.
* inputs and outputs should be far apart, so that RF energy will not leak back from output to input. stages should line up, rather than snake around.
* decouple the RF parts of the circuit from the DC parts of the circuit.
* shield AF and IF components from RF components.
* high-speed communication (over 100 Mb/s per wire) generally requires point-to-point connections, rather than multi-point multi-drop bus connections. Communication over 622 Mb/s per wire requires even more specialized techniques and careful connector selection.<ref>
[http://www.latticesemi.com/lit/docs/technotes/tn1033.pdf Lattice Technical Note TN1033 "High-Speed PCB Design Considerations"]
</ref>
Many people have a checklist of things to review before sending the Gerber layout files to the PCB fabricator.<ref>
[http://www.xilinx.com/products/design_resources/signal_integrity/si_pcbcheck.htm Xilinx PCB Design Checklist]
</ref><ref>
[http://web.archive.org/web/20111215215947/http://www.duke.edu/~kya/pcb.pdf "Steve’s PCB layout checklist"]
</ref><ref>
[http://airborn.com.au/method/doc.html "standard PCB documentation file"]: a list of diagrams and "source" files that contain all the information required to fabricate or further develop the product.
</ref><ref>
[http://www.nexlogic.com/services/pcb-design/pcb-design-for-assembly/pcb-design-for-assembly-checklist.aspx]
</ref><ref>
[http://www.nexlogic.com/services/pcb-design/pcb-design-for-assembly/pcb-design-for-assembly-checklist.aspx "Golden Rules For Preventing Parts Headaches At PCB Layout"]
</ref><ref>
http://www.volersystems.com/v-2010-issue-1/pcb-layout-checklist Voler Systems "PCB Layout Checklist",
based on
[http://www.aqdi.com/check.htm Hank Wallace: "Electronics Design Checklist"]
</ref><ref>
http://www.adcom.co.il/engineering/pcb_chl.htm Adcom: "PCB layout checklist"
</ref><ref>
[http://int.xscale-freak.com/XSDoc/PXA27X/28001301.pdf "Intel® PXA27x Processor Family Design Check List" section 4.0 "PCB Layout Check List"]
</ref><ref>
[http://www.cepdinc.com/presentations/PcbLayoutGuidelines_files/frame.htm "PCB Layout Checklist"]
</ref>
== Further Reading ==
{{wikipediapar|| design for manufacturability}}
{{wikipediapar|| design for manufacturability (PCB)}}
* [http://FrontDoor.biz/HowToPCB/ How To Be A Circuit Board Designer (tutorial)]
* [[Kicad]] is a Wikibook that covers one popular software tool used for PCB layout.
* [[Chip Design Made Easy]] describes some issues that effect both chip designers and PCB designers, such as EMI.
* [[Robotics:_Design_Basics:_Design_software#Schematic_Capture_.26_PCB]]
* [[Wikipedia: schematic capture]]
* [[Wikipedia: electronics]]
* [[Wikipedia: electronics manufacturing]]
* [[Wikipedia: electromagnetic interference]]
* [[Wikipedia: circuit design]]
* [[Wikipedia: schematic]]
* [[Wikipedia: printed circuit board]]
* [[Wikipedia: Gerber format]]
* [[Wikipedia: ground plane]] and [[Wikipedia: power plane]]
* [[Wikipedia: power electronic substrate]]
* [[Wikipedia: characteristic impedance]]
* [[Wikipedia: fiducial]]
* [[Wikipedia: SPICE]]
* [[Wikipedia: electrical network]]
* [[Wikipedia: lumped element model]]
* [[Wikipedia: point-to-point construction]]
* [[Wikipedia: wire wrap]]
* some components require [[Wikipedia: heat sink]]s for heat dissipation
* [[Wikipedia: surface-mount technology]]
* [[Wikipedia: signal trace]]
* [[Wikipedia: electric current]]
* [[Wikipedia: electrolytic capacitor]]
* [[Wikipedia: electrical termination]]
* [[Wikipedia:de:Leiterplattenentflechtung]]
== References ==
[https://rushpcb.com/free-pcb-design/ Free PCB Design]
<references/>
== External links ==
{{wikipediapar||printed circuit board}}
{{wikipediapar||electromagnetic compatibility}}
{{BookCat}}
[[cs:Praktická elektronika/Výroba plošných spojů]]
bqb8q2jnzu6giwaypm6e5vb9ijjslpk
User:Mahagaja
2
96559
4640460
4448078
2026-06-16T20:50:51Z
Mahagaja
13610
4640460
wikitext
text/x-wiki
I'm not terribly active here, but I added the following recipes:
*[[Cookbook:Tuna Curry|Tuna Curry]]
*[[Cookbook:East Frisian Tea|East Frisian Tea]]
*[[Cookbook:Beef Stew 2|Beef Stew 2]]
*[[Cookbook:Meatloaf V|Meatloaf V]]
*[[Cookbook:Creamed Corn|Creamed Corn]]
*[[Cookbook:Glorified Mac and Cheese|Glorified Mac and Cheese]]
*[[Cookbook:Chicken à la King|Chicken à la King]]
*[[Cookbook:Banana Pudding|Banana Pudding]]
*[[Cookbook:Blue Cheese Dressing|Blue Cheese Dressing]]
*[[Cookbook:Chicken and Dumplings|Chicken and Dumplings]]
*[[Cookbook:Americanized Eggplant Parmesan]]
See my user pages at:
*[[w:User:Mahagaja]]
*[[commons:User:Mahagaja]]
*[[m:User:Mahagaja]]
*[[s:User:Mahagaja]]
iemzj0drsaisxhzilujmtqp95dlw09e
4640470
4640460
2026-06-16T21:17:40Z
Mahagaja
13610
4640470
wikitext
text/x-wiki
I'm not terribly active here, but I added the following recipes:
*[[Cookbook:Tuna Curry|Tuna Curry]]
*[[Cookbook:East Frisian Tea|East Frisian Tea]]
*[[Cookbook:Beef Stew 2|Beef Stew 2]]
*[[Cookbook:Meatloaf V|Meatloaf V]]
*[[Cookbook:Creamed Corn|Creamed Corn]]
*[[Cookbook:Glorified Mac and Cheese|Glorified Mac and Cheese]]
*[[Cookbook:Chicken à la King|Chicken à la King]]
*[[Cookbook:Banana Pudding|Banana Pudding]]
*[[Cookbook:Blue Cheese Dressing|Blue Cheese Dressing]]
*[[Cookbook:Chicken and Dumplings|Chicken and Dumplings]]
*[[Cookbook:Americanized Eggplant Parmesan|Americanized Eggplant Parmesan]]
See my user pages at:
*[[w:User:Mahagaja]]
*[[commons:User:Mahagaja]]
*[[m:User:Mahagaja]]
*[[s:User:Mahagaja]]
j65xc24vhz8zdu93cywqh5txl58n9qx
Vehicle Identification Numbers (VIN codes)/World Manufacturer Identifier (WMI)
0
142006
4640466
4640016
2026-06-16T21:05:24Z
JustTheFacts33
3434282
/* List of Many WMIs */
4640466
wikitext
text/x-wiki
==World Manufacturer Identifier==
The first three characters uniquely identify the manufacturer of the vehicle using the '''World Manufacturer Identifier''' or '''WMI''' code. A manufacturer that builds fewer than 1000 vehicles per year uses a 9 as the third digit and the 12th, 13th and 14th position of the VIN for a second part of the identification. Some manufacturers use the third character as a code for a vehicle category (e.g., bus or truck), a division within a manufacturer, or both. For example, within 1G (assigned to General Motors in the United States), 1G1 represents Chevrolet passenger cars; 1G2, Pontiac passenger cars; and 1GC, Chevrolet trucks.
===WMI Regions===
The first character of the WMI is the region in which the manufacturer is located. In practice, each is assigned to a country of manufacture. Common auto-manufacturing countries are noted. <ref>{{cite web
| url=https://standards.iso.org/iso/3780/
| title=ISO Standards Maintenance Portal: ISO 3780
| publisher=[[wikipedia:International Organization for Standardization]]}}</ref>
{| class="wikitable" style="text-align:center"
|-
! WMI
! Region
! Notes
|-
| A-C
| Africa
| AA-AH = South Africa<br />BF-BG = Kenya<br />BU = Uganda<br />CA-CB = Egypt<br />DF-DK = Morocco
|-
| E, H-R
| Asia
| E=Russia<br />H = China<br />J = Japan<br />KF-KH = Israel<br />KL-KR = South Korea<br />L = China<br />MA-ME = India<br />MF-MK = Indonesia<br />ML-MR = Thailand<br />MS = Myanmar<br />MX = Kazakhstan<br />MY-M0 = India<br />NF-NG = Pakistan<br />NL-NR = Turkey<br />NS-NT = Uzbekistan<br />PA-PC = Philippines<br />PF-PG = Singapore<br />PL-PR = Malaysia<br />PS-PT = Bangladesh<br />PV=Cambodia<br />RA-RB = United Arab Emirates<br />RF-RK = Taiwan<br />RL-RN = Vietnam<br />RS-RT = Saudi Arabia<br />RU-RW = Russia<br />R1-R7 = Hong Kong
|-
| S-Z
| Europe
| SA-SM = United Kingdom<br />SN-ST = Germany (formerly East Germany)<br />SU-SZ = Poland<br />TA-TH = Switzerland<br />TJ-TP = Czech Republic<br />TR-TV = Hungary<br />TW-T2 = Portugal<br />UH-UM = Denmark<br />UN-UR = Ireland<br />UU-UX = Romania<br />U1-U2 = North Macedonia<br />U5-U7 = Slovakia<br />VA-VE = Austria<br />VF-VR = France<br />VS-VW = Spain<br />VX-V2 = France (formerly Serbia/Yugoslavia)<br />V3-V5 = Croatia<br />V6-V8 = Estonia<br /> W = Germany (formerly West Germany)<br />XA-XC = Bulgaria<br />XF-XH = Greece<br />XL-XR = The Netherlands<br />XS-XW = Russia (formerly USSR)<br />XX-XY = Luxembourg<br />XZ-X0 = Russia<br />YA-YE = Belgium<br />YF-YK = Finland<br />YS-YW = Sweden<br />YX-Y2 = Norway<br />Y3-Y5 = Belarus<br />Y6-Y8 = Ukraine<br />ZA-ZU = Italy<br />ZX-ZZ = Slovenia<br />Z3-Z5 = Lithuania<br />Z6-Z0 = Russia
|-
| 1-5
| North America
| 1, 4, 5 = United States<br />2 = Canada<br />3 = Mexico<br />7F-70 = United States
|-
| 6-7
| Oceania
| 6A-6W = Australia<br />7A-7E = New Zealand<br />Revised: 6A-6X = Australia<br />6Y-61 = New Zealand
|-
| 8-9
| South America
| 8A-8E = Argentina<br />8F-8G = Chile<br />8L-8N = Ecuador<br />8S-8T = Peru<br />8X-8Z = Venezuela<br />82 = Bolivia<br />84 = Costa Rica<br />9A-9E, 91-90 = Brazil<br />9F-9G = Colombia<br />9S-9V = Uruguay
|}
{| class="wikitable" style="text-align:center"
|-
!
! A
! B
! C
! D
! E
! F
! G
! H
! J
! K
! L
! M
! N
! P
! R
! S
! T
! U
! V
! W
! X
! Y
! Z
! 1
! 2
! 3
! 4
! 5
! 6
! 7
! 8
! 9
! 0
|-
| '''A''' || colspan="8" | South Africa || colspan="2" | Ivory Coast || colspan="2" | Lesotho || colspan="2" | Botswana || colspan="2" | Namibia || colspan="2" | Madagascar || colspan="2" | Mauritius || colspan="2" | Tunisia || colspan="2" | Cyprus || colspan="2" | Zimbabwe || colspan="2" | Mozambique || colspan="5" | ''Africa''
|-
| '''B''' || colspan="2" | Angola || colspan="1" | Ethiopia || colspan="2" | ''Africa'' || colspan="2" | Kenya || colspan="1" | Rwanda || colspan="2" | ''Africa'' || colspan="1" | Nigeria || colspan="3" | ''Africa'' || colspan="1" | Algeria || colspan="1" | ''Africa'' || colspan="1" | Swaziland || colspan="1" | Uganda || colspan="7" | ''Africa''|| colspan="2" | Libya || colspan="6" | ''Africa''
|-
| '''C''' || colspan="2" | Egypt || colspan="3" | ''Africa'' || colspan="2" | Morocco || colspan="3" | ''Africa'' || colspan="2" | Zambia || colspan="21" | ''Africa''
|-
| '''D''' || colspan="33" rowspan="1" |
|-
| '''E''' || colspan="33" | Russia
|-
| '''F''' || colspan="33" rowspan="2" |
|-
| '''G'''
|-
| '''H''' || colspan="33" | China
|-
| '''J''' || colspan="33" | Japan
|-
| '''K''' || colspan="5" | ''Asia'' || colspan="3" | Israel || colspan="2" | ''Asia'' || colspan="5" | South Korea || colspan="2" | Jordan || colspan="6" | ''Asia'' || colspan="3" | South Korea || colspan="1" | ''Asia'' || colspan="1" | Kyrgyzstan || colspan="5" | ''Asia''
|-
| '''L''' || colspan="33" | China
|-
| '''M''' || colspan="5" | India || colspan="5" | Indonesia || colspan="5" | Thailand || colspan="1" | Myanmar || colspan="1" | ''Asia'' || colspan="1" | Mongolia || colspan="2" | ''Asia'' || colspan="1" | Kazakhstan || colspan="12" | India
|-
| '''N''' || colspan="5" | Iran || colspan="2" | Pakistan || colspan="1" | ''Asia'' || colspan="1" | Iraq || colspan="1" | ''Asia'' || colspan="5" | Turkey || colspan="2" | Uzbekistan || colspan="1" | ''Asia'' || colspan="1" | Azerbaijan || colspan="1" | ''Asia'' || colspan="1" | Tajikistan || colspan="1" | Armenia || colspan="1" | ''Asia'' || colspan="5" | Iran || colspan="1" | ''Asia'' || colspan="2" | Turkey || colspan="2" | ''Asia''
|-
| '''P''' || colspan="3" | Philippines || colspan="2" | ''Asia'' || colspan="2" | Singapore || colspan="3" | ''Asia'' || colspan="5" | Malaysia || colspan="2" | Bangladesh || colspan="10" | ''Asia'' || colspan="6" | India
|-
| '''R''' || colspan="2" | UAE || colspan="3" | ''Asia'' || colspan="5" | Taiwan || colspan="3" | Vietnam || colspan="1" | Laos || colspan="1" | ''Asia'' || colspan="2" | Saudi Arabia || colspan="3" | Russia || colspan="3" | ''Asia'' || colspan="7" | Hong Kong || colspan="3" | ''Asia''
|-
!
! A
! B
! C
! D
! E
! F
! G
! H
! J
! K
! L
! M
! N
! P
! R
! S
! T
! U
! V
! W
! X
! Y
! Z
! 1
! 2
! 3
! 4
! 5
! 6
! 7
! 8
! 9
! 0
|-
| '''S''' || colspan="12" | United Kingdom || colspan="5" | Germany <small>(former East Germany)</small> || colspan="6" | Poland || colspan="2" | Latvia || colspan="1" | Georgia || colspan="1" | Iceland || colspan="6" | ''Europe''
|-
| '''T''' || colspan="8" | Switzerland || colspan="6" | Czech Republic || colspan="5" | Hungary || colspan="6" | Portugal || colspan="3" | Serbia || colspan="1" | Andorra || colspan="2" | Netherlands || colspan="2" | ''Europe''
|-
| '''U''' || colspan="3" | Spain || colspan="4" | ''Europe'' || colspan="5" | Denmark || colspan="3" | Ireland || colspan="2" | ''Europe'' || colspan="4" | Romania || colspan="2" | ''Europe'' || colspan="2" | North Macedonia || colspan="2" | ''Europe'' || colspan="3" | Slovakia || colspan="3" | Bosnia & Herzogovina
|-
| '''V''' || colspan="5" | Austria || colspan="10" | France || colspan="5" | Spain || colspan="5" | France <small>(formerly Yugoslavia & Serbia)</small> || colspan="3" | Croatia || colspan="3" | Estonia || colspan="2" | ''Europe''
|-
| '''W''' || colspan="33" | Germany
|-
| '''X''' || colspan="3" | Bulgaria || colspan="2" | Russia || colspan="3" | Greece || colspan="2" | Russia || colspan="5" | Netherlands || colspan="5" | Russia <small>(former USSR)</small> || colspan="2" | Luxembourg || colspan="11" | Russia
|-
| '''Y''' || colspan="5" | Belgium || colspan="5" | Finland || colspan="2" | ''Europe'' || colspan="1" | Malta || colspan="2" | ''Europe'' || colspan="5" | Sweden || colspan="5" | Norway || colspan="3" | Belarus || colspan="3" | Ukraine || colspan="2" | ''Europe''
|-
| '''Z''' || colspan="18" | Italy || colspan="2" | ''Europe'' || colspan="3" | Slovenia || colspan="1" | San Marino|| colspan="1" | ''Europe''|| colspan="3" | Lithuania || colspan="5" | Russia
|-
| '''1''' || colspan="33" | United States
|-
| '''2''' || colspan="28" | Canada || colspan="5" | ''North America''
|-
| '''3''' || colspan="21" | Mexico || colspan="5" | ''North America'' || colspan="1" | Nicaragua || colspan="1" | Dom. Rep. || colspan="1" | Honduras || colspan="1" | Panama || colspan="2" | Puerto Rico || colspan="1" | ''North America''
|-
| '''4''' || colspan="33" rowspan="2" | United States
|-
| '''5'''
|-
| '''6''' || colspan="21" | Australia || colspan="3" | New Zealand || colspan="9" | ''Oceania''
|-
| '''7''' || colspan="5" | New Zealand || colspan="28" | United States
|-
| '''8''' || colspan="5" | Argentina || colspan=2 | Chile || colspan="3" | ''South America'' || colspan="3" | Ecuador || colspan="2" | ''South America'' || colspan="2" | Peru || colspan="3" | ''South America'' || colspan="3" | Venezuela || colspan="1" | ''SA'' || colspan="1" | Bolivia || colspan="1" | ''SA'' || colspan="1" | Costa Rica || colspan="6" | ''South America''
|-
| '''9''' || colspan="5" | Brazil || colspan="2" | Colombia || colspan="8" | ''South America'' || colspan="4" | Uruguay || colspan="4" | ''South America'' || colspan="10" | Brazil
|-
| '''0''' || colspan="33" rowspan="1" |
|}
===List of Many WMIs===
The [[w:Society of Automotive Engineers|Society of Automotive Engineers]] (SAE) in the US assigns WMIs to countries and manufacturers.<ref>{{cite web
| url=https://www.iso.org/standard/45844.html
| title=ISO 3780:2009 - Road vehicles — World manufacturer identifier (WMI) code
| date=October 2009
| publisher=International Organization for Standardization}}</ref> The following table contains a list of mainly commonly used WMIs, although there are many others assigned.
{| class="wikitable x" style="text-align:center"
|-
! WMI !! Manufacturer
|-
| AAA|| Audi South Africa made by Volkswagen of South Africa
|-
| AAK|| FAW Vehicle Manufacturers SA (PTY) Ltd.
|-
| AAM|| MAN Automotive (South Africa) (Pty) Ltd. (includes VW Truck & Bus)
|-
|AAP || VIN restamped by South African Police Service (so-called SAPVIN or AAPV number)
|-
| AAV || Volkswagen South Africa
|-
| AAW || Challenger Trailer Pty Ltd. (South Africa)
|-
| AA9/CN1 || TR-Tec Pty Ltd. (South Africa)
|-
| ABJ || Mitsubishi Colt & Triton pickups made by Mercedes-Benz South Africa 1994–2011
|-
| ABJ || Mitsubishi Fuso made by Daimler Trucks & Buses Southern Africa
|-
| ABM || BMW Southern Africa
|-
| ACV || Isuzu Motors South Africa 2018-
|-
| AC5 || [[../Hyundai/VIN Codes|Hyundai]] Automotive South Africa
|-
| AC9/BM1 || Beamish Beach Buggies (South Africa)
|-
| ADB || Mercedes-Benz South Africa car
|-
| ADD || UD Trucks Southern Africa (Pty) Ltd.
|-
| ADM || General Motors South Africa (includes Isuzu through 2018)
|-
| ADN || Nissan South Africa (Pty) Ltd.
|-
| ADR || Renault Sandero made by Nissan South Africa (Pty) Ltd.
|-
| ADX || Tata Automobile Corporation (SA) Ltd.
|-
| AE9/MT1 || Backdraft Racing (South Africa)
|-
| AFA || Ford Motor Company of Southern Africa & Samcor
|-
| AFB || Mazda BT-50 made by Ford Motor Company of Southern Africa
|-
| AFD || BAIC Automotive South Africa
|-
| AFZ || Fiat Auto South Africa
|-
| AHH || Hino South Africa
|-
| AHM || Honda Ballade made by Mercedes-Benz South Africa 1982–2000
|-
| AHT || Toyota South Africa Motors (Pty.) Ltd.
|-
| BF9/|| KIBO Motorcycles, Kenya
|-
| BUK || Kiira Motors Corporation, Uganda
|-
| BR1 || Mercedes-Benz Algeria (SAFAV MB)
|-
| BRY || FIAT Algeria
|-
| CA3 || MCV bus (Egypt)
|-
| DDY || Geyushi Motors (bus) (Egypt)
|-
| DF9/|| Laraki (Morocco)
|-
| EAA || Aurus Motors (Russia)
|-
| EAN || Evolute (Russia)
|-
| EAU || Elektromobili Manufacturing Rus - EVM (Russia)
|-
| EBE || Sollers-Auto (Russia)
|-
| EBZ || Nizhekotrans bus (Russia)
|-
| ECE || XCITE (Russia)
|-
| ECW || Trans-Alfa bus (Russia)
|-
| HAC || GAC Motor (Aion)
|-
| HA0 || Wuxi Sundiro Electric Vehicle Co., Ltd. (Palla, Parray)
|-
| HA6 || Niu Technologies
|-
| HA7 || Jinan Qingqi KR Motors Co., Ltd.
|-
| HES || smart Automobile Co., Ltd. (Mercedes-Geely joint venture)
|-
| HGL || Farizon Auto van (Geely)
|-
| HGX || Wuling Motors commercial vehicle (Geely)
|-
| HHZ || Huazi Automobile
|-
| HJN || Nio, Firefly
|-
| HJR || Chery Commercial Vehicle (Anhui) Co., Ltd. Jetour made by Chery Commercial Vehicle
|-
| HJZ || Juzhen Chengshi van
|-
| HJ4 || BAW car
|-
| HL4 || Zhejiang Morini Vehicle Co., Ltd. <br />(Moto Morini subsidiary of Taizhou Zhongneng Motorcycle Co., Ltd.)
|-
| HLX || Li Auto
|-
| HRV || Beijing Henrey Automobile Technology Co., Ltd.
|-
| HVW || Volkswagen Anhui
|-
| HWM || WM Motor Technology Co., Ltd. (Weltmeister)
|-
| HXM || Xiaomi
|-
| HZ2 || Taizhou Zhilong Technology Co., Ltd (motorcycle)
|-
| H0D || Taizhou Qianxin Vehicle Co., Ltd. (motorcycle)
|-
| H0G || Wisdom (Fujian) Motor Co., Ltd. (bus)
|-
| JAA || Isuzu truck, Holden Rodeo TF, Opel Campo, Bedford/Vauxhall Brava pickup made by Isuzu in Japan
|-
| JAB || Isuzu car
|-
| JAC || Isuzu SUV, Opel/Vauxhall Monterey & Holden Jackaroo/Monterey made by Isuzu in Japan
|-
| JAE || Acura SLX made by Isuzu
|-
| JAL || Isuzu commercial trucks & <br /> Chevrolet commercial trucks made by Isuzu 2016+ & <br /> Hino S-series truck made by Isuzu (Incomplete Vehicle - medium duty)
|-
| JAM || Isuzu commercial trucks (Incomplete Vehicle - light duty)
|-
| JA3 || Mitsubishi car (for North America)
|-
| JA4 || Mitsubishi MPV/SUV (for North America) & Nissan Rogue PHEV '26
|-
| JA7 || Mitsubishi truck (for North America)
|-
| JB3 || Dodge car made by Mitsubishi Motors
|-
| JB4 || Dodge MPV/SUV made by Mitsubishi Motors
|-
| JB7 || Dodge truck made by Mitsubishi Motors
|-
| JC0 || Ford brand cars made by Mazda
|-
| JC1 || Fiat 124 Spider made by Mazda
|-
| JC2 || Ford Courier made by Mazda
|-
| JDA || Daihatsu, Subaru Justy made by Daihatsu
|-
| JD1 || Daihatsu car
|-
| JD2 || Daihatsu SUV
|-
| JD4 || Daihatsu truck
|-
| JE3 || Eagle car made by Mitsubishi Motors
|-
| JE4 || Mitsubishi Motors
|-
| JF1 || ([[../Subaru/VIN Codes|Subaru]]) car
|-
| JF2 || ([[../Subaru/VIN Codes|Subaru]]) SUV
|-
| JF3 || ([[../Subaru/VIN Codes|Subaru]]) truck
|-
| JF4 || Saab 9-2X made by Subaru
|-
| JG1 || Chevrolet/Geo car made by Suzuki
|-
| JG2 || Pontiac car made by Suzuki
|-
| JG7 || Pontiac/Asuna car made by Suzuki for GM Canada
|-
| JGC || Chevrolet/Geo SUV made by Suzuki (classified as a truck)
|-
| JGT || GMC SUV made by Suzuki for GM Canada (classified as a truck)
|-
| JHA || Hino truck
|-
| JHB || Hino incomplete vehicle
|-
| JHD || Hino
|-
| JHF || Hino
|-
| JHH || Hino incomplete vehicle
|-
| JHF-JHG, JHL-JHN, JHZ,<br/>JH1-JH5 || [[../Honda/VIN Codes|Honda]]
|-
| JHL || [[../Honda/VIN Codes|Honda]] MPV/SUV
|-
| JHM || [[../Honda/VIN Codes|Honda]] car
|-
| JH1 || [[../Honda/VIN Codes|Honda]] truck
|-
| JH2 || [[../Honda/VIN Codes|Honda]] motorcycle/ATV
|-
| JH3 || [[../Honda/VIN Codes|Honda]] ATV
|-
| JH4 || Acura car
|-
| JH6 || Hino incomplete vehicle
|-
| JJ3 || Chrysler brand car made by Mitsubishi Motors
|-
| JKA || Kawasaki (motorcycles)
|-
| JKB || Kawasaki (motorcycles)
|-
| JKM || Mitsuoka
|-
| JKS || Suzuki Marauder 1600/Boulevard M95 motorcycle made by Kawasaki
|-
| JK8 || Suzuki QUV620F UTV made by Kawasaki
|-
| JLB || Mitsubishi Fuso Truck & Bus Corp.
|-
| JLF || Mitsubishi Fuso Truck & Bus Corp.
|-
| JLS || Sterling Truck 360 made by Mitsubishi Fuso Truck & Bus Corp.
|-
| JL5 || Mitsubishi Fuso Truck & Bus Corp.
|-
| JL6 || Mitsubishi Fuso Truck & Bus Corp.
|-
| JL7 || Mitsubishi Fuso Truck & Bus Corp.
|-
| JMA || Mitsubishi Motors (right-hand drive) for Europe
|-
| JMB || Mitsubishi Motors (left-hand drive) for Europe
|-
| JMF || Mitsubishi Motors for Australia (including Mitsubishi Express made by Renault)
|-
| JMP || Mitsubishi Motors (left-hand drive)
|-
| JMR || Mitsubishi Motors (right-hand drive)
|-
| JMY || Mitsubishi Motors (left-hand drive) for South America & Middle East
|-
| JMZ || Mazda for Europe export & Mazda 2 made by Ford Spain & Mazda 2 Hybrid made by Toyota Motor Manufacturing France
|-
| JM0 || Mazda for Oceania export
|-
| JM1 || Mazda car
|-
| JM2 || Mazda truck
|-
| JM3 || Mazda MPV/SUV
|-
| JM4 || Mazda
|-
| JM6 || Mazda
|-
| JM7 || Mazda
|-
| JNA || Nissan Diesel/UD Trucks (incomplete vehicle)
|-
| JNC || Nissan Diesel/UD Trucks
|-
| JNE || Nissan Diesel/UD Trucks (truck)
|-
| JNK || Infiniti car
|-
| JNR || Infiniti SUV
|-
| JNX || Infiniti incomplete vehicle
|-
| JN1 || Nissan car & Infiniti car
|-
| JN3 || Nissan incomplete vehicle
|-
| JN6 || Nissan truck/van & Mitsubishi Fuso Canter Van
|-
| JN8 || Nissan MPV/SUV & Infiniti SUV
|-
| JPA || International Trucks made by Nissan Diesel (incomplete vehicle)
|-
| JPB || International Trucks made by Nissan Diesel (tractor truck)
|-
| JPC || Nissan Diesel/UD Trucks
|-
| JPE || International Trucks made by Nissan Diesel (truck)
|-
| JP3 || Plymouth car made by Mitsubishi Motors
|-
| JP4 || Plymouth MPV/SUV made by Mitsubishi Motors
|-
| JP7 || Plymouth truck made by Mitsubishi Motors
|-
| JR2 || Isuzu Oasis made by Honda
|-
| JSA || Suzuki ATV & '03 Kawasaki KFX400 ATV made by Suzuki, Suzuki car/SUV (outside N. America), Holden Cruze YG made by Suzuki
|-
| JSK || Kawasaki KLX125/KLX125L motorcycle made by Suzuki
|-
| JSL || '04-'06 Kawasaki KFX400 ATV made by Suzuki
|-
| JST || Suzuki Across SUV made by Toyota
|-
| JS1 || Suzuki motorcycle & Kawasaki KLX400S/KLX400SR motorcycle made by Suzuki
|-
| JS2 || Suzuki car
|-
| JS3 || Suzuki SUV
|-
| JS4 || Suzuki truck
|-
| JTB || Toyota bus
|-
| JTD || Toyota car
|-
| JTE || Toyota MPV/SUV
|-
| JTF || Toyota van/truck
|-
| JTG || Toyota MPV/bus
|-
| JTH || Lexus car
|-
| JTJ || Lexus SUV
|-
| JTK || Toyota car
|-
| JTL || Toyota SUV
|-
| JTM || Toyota SUV, Subaru Solterra made by Toyota
|-
| JTN || Toyota car
|-
| JTP || Toyota SUV
|-
| JT1 || [[../Toyota/VIN Codes|Toyota]] van
|-
| JT2 || Toyota car
|-
| JT3 || Toyota MPV/SUV
|-
| JT4 || Toyota truck/van
|-
| JT5 || Toyota incomplete vehicle
|-
| JT6 || Lexus SUV
|-
| JT7 || Toyota bus/van
|-
| JT8 || Lexus car
|-
| JW6 || Mitsubishi Fuso division of Mitsubishi Motors (through mid-2003)
|-
| JYA || Yamaha motorcycles
|-
| JYE || Yamaha snowmobile
|-
| JY3 || Yamaha 3-wheel ATV
|-
| JY4 || Yamaha 4-wheel ATV
|-
| J81 || Chevrolet/Geo car made by Isuzu
|-
| J87 || Pontiac/Asüna car made by Isuzu for GM Canada
|-
| J8B || Chevrolet commercial trucks made by Isuzu (incomplete vehicle)
|-
| J8C || Chevrolet commercial trucks made by Isuzu (truck)
|-
| J8D || GMC commercial trucks made by Isuzu (incomplete vehicle)
|-
| J8T || GMC commercial trucks made by Isuzu (truck)
|-
| J8Z || Chevrolet LUV pickup truck made by Isuzu
|-
| KF3 || Merkavim (Israel)
|-
| KF6 || Automotive Industries, Ltd. (Israel)
|-
| KF9/004 || Tomcar (Israel)
|-
| KG9/002 || Charash Ashdod (truck trailer) (Israel)
|-
| KG9/004 || H. Klein (truck trailer) (Israel)
|-
| KG9/007 || Agam Trailers (truck trailer) (Israel)
|-
| KG9/009 || Merkavey Noa (trailer) (Israel)
|-
| KG9/010 || Weingold Trailers (trailer) (Israel)
|-
| KG9/011 || Netzer Sereni (truck trailer) (Israel)
|-
| KG9/015 || Merkaz Hagrorim (trailer) (Israel)
|-
| KG9/035 || BEL Technologies (truck trailer) (Israel)
|-
| KG9/091 || Jansteel (truck trailer) (Israel)
|-
| KG9/101 || Bassamco (truck trailer) (Israel)
|-
| KG9/104 || Global Handasa (truck trailer) (Israel)
|-
| KL || Daewoo [[../GM/VIN Codes|General Motors]] South Korea
|-
| KLA || Daewoo/GM Daewoo/GM Korea (Chevrolet/Alpheon)<br /> from Bupyeong & Kunsan plants
|-
| KLP || CT&T United (battery electric low-speed vehicles)
|-
| KLT || Tata Daewoo
|-
| KLU || Tata Daewoo
|-
| KLY || Daewoo/GM Daewoo/GM Korea (Chevrolet) from Changwon plant (Tico/Matiz/Matiz Creative/Spark/Damas/Labo)
|-
| KL1 || GM Daewoo/GM Korea (Chevrolet car)
|-
| KL2 || Daewoo/GM Daewoo (Pontiac)
|-
| KL3 || GM Daewoo/GM Korea (Holden)
|-
| KL4 || GM Korea (Buick)
|-
| KL5 || GM Daewoo (Suzuki)
|-
| KL6 || GM Daewoo (GMC)
|-
| KL7 || Daewoo (GM Canada brands: Passport, Asuna (Pre-2000))
|-
| KL7 || GM Daewoo/GM Korea (Chevrolet MPV/SUV (Post-2000))
|-
| KL8 || GM Daewoo/GM Korea (Chevrolet car from Changwon plant (Spark))
|-
| KM || [[../Hyundai/VIN Codes|Hyundai]]
|-
| KMC || Hyundai commercial truck
|-
| KME || Hyundai commercial truck (semi-tractor)
|-
| KMF || Hyundai van & commercial truck & Bering Truck
|-
| KMH || Hyundai car & Mexican market Dodges made by Hyundai
|-
| KMJ || Hyundai minibus/bus
|-
| KMT || Genesis Motor car
|-
| KMU || Genesis Motor SUV
|-
| KMX || Hyundai Galloper SUV
|-
| KMY || Daelim Motor Company, Ltd/DNA Motors Co., Ltd. (motorcycles)
|-
| KM1 || Hyosung Motors (motorcycles)
|-
| KM4 || Hyosung Motors/S&T Motors/KR Motors (motorcycles)
|-
| KM8 || Hyundai SUV
|-
| KNA || Kia car
|-
| KNC || Kia truck
|-
| KND || Kia MPV/SUV & Hyundai Entourage
|-
| KNE || Kia for Europe export
|-
| KNF || Kia, special vehicles
|-
| KNG || Kia minibus/bus
|-
| KNJ || Ford Festiva & Aspire made by Kia
|-
| KNL || Kia Elan/Vigato made by Kia Motech
|-
| KNM || Renault Samsung Motors, Nissan Rogue made by Renault Samsung, Nissan Sunny made by Renault Samsung
|-
| KNM || Renault Korea Co., Ltd.
|-
| KN1 || Asia Motors
|-
| KN2 || Asia Motors
|-
| KPA || SsangYong/KG Mobility (KGM) pickup
|-
| KPB || SsangYong car
|-
| KPD || SsangYong TransStar (bus)
|-
| KPH || Mitsubishi Precis
|-
| KPT || SsangYong/KG Mobility (KGM) SUV/MPV
|-
| LAA || Shanghai Jialing Vehicle Co., Ltd. (motorcycle)
|-
| LAE || Jinan Qingqi Motorcycle
|-
| LAL || Sundiro [[../Honda/VIN Codes|Honda]] Motorcycle
|-
| LAN || Changzhou Yamasaki Motorcycle
|-
| LAP || Chongqing Jianshe Motorcycle Co., Ltd.
|-
| LAP || Zhuzhou Nanfang Motorcycle Co., Ltd.
|-
| LAT || Luoyang Northern Ek Chor Motorcycle Co., Ltd. (Dayang)
|-
| LA6 || Xiamen King Long United Automotive Industry Co., Ltd. (bus)
|-
| LA7 || Radar Auto (Geely)
|-
| LA8 || Anhui Ankai
|-
| LA9/AYS || Jiangsu Alfa Bus Co., Ltd. (bus)
|-
| LA9/BFC || Beijing North Huade Neoplan Bus Co., Ltd.
|-
| LA9/FBC || Xiamen Fengtai Bus & Coach International Co., Ltd. (FTBCI) (bus)
|-
| LA9/HFF || Anhui Huaxia Vehicle Manufacturing Co., Ltd. (bus)
|-
| LA9/JXK || CHTC Bonluck Bus Co., Ltd.
|-
| LA9/LC0 || BYD
|-
| LA9/LFJ || Xinlongma Automobile
|-
| LA9/LM6 || SRM Shineray
|-
| LBB || Zhejiang Qianjiang Motorcycle (QJ Motor/Keeway/Benelli)
|-
| LBE || Beijing [[../Hyundai/VIN Codes|Hyundai]] (Hyundai, Shouwang)
|-
| LBM || Zongshen Piaggio
|-
| LBP || Chongqing Jianshe Yamaha Motor Co. Ltd. (motorcycles)
|-
| LBV || BMW Brilliance (BMW, Zinoro)
|-
| LBX || Jiangsu Kinroad Xintian Motorcycle Manufacture Co. Ltd. (motorcycles)
|-
| LBZ || Yantai Shuchi Vehicle Co., Ltd. (bus)
|-
| LB1 || Fujian Benz
|-
| LB2 || Geely Motorcycles
|-
| LB3 || Zhejiang Geely Holding Group (Geely, Galaxy, Geometry, Kandi)
|-
| LB4 || Chongqing Yinxiang Motorcycle Group Co., Ltd.
|-
| LB5 || Foshan City Fosti Motorcycle Co., Ltd.
|-
| LB7 || Tibet New Summit Motorcycle Co., Ltd.
|-
| LCE || Hangzhou Chunfeng Motorcycles (CFMOTO)
|-
| LCR || Gonow
|-
| LC0 || BYD Auto (BYD, Denza)
|-
| LC2 || Changzhou Kwang Yang Motor Co., Ltd. (Kymco)
|-
| LC6 || Changzhou Haojue Suzuki Motorcycle Co. Ltd.
|-
| LDB || Dadi Auto
|-
| LDC || Dongfeng Peugeot Citroen Automobile Co., Ltd. (DPCA), Dongfeng Fengshen (Aeolus) L60
|-
| LDD || Dandong Huanghai Automobile
|-
| LDF || Dezhou Fulu Vehicle Co., Ltd. (motorcycles), BAW Yuanbao electric car (Ace P1 in Norway)
|-
| LDK || FAW Bus (Dalian) Co., Ltd.
|-
| LDN || Soueast (South East (Fujian) Motor Co., Ltd.) including Mitsubishi made by Soueast
|-
| LDP || Dongfeng, Dongfeng Fengshen (Aeolus), Voyah, Renault City K-ZE/Venucia e30 made by eGT New Energy Automotive
|-
| LDY || Zhongtong Bus Holding Co. Ltd.
|-
| LD3 || Guangdong Tayo Motorcycle Technology Co. (Zontes) (motorcycle)
|-
| LD5 || Benzhou Vehicle Industry Group Ltd. (motorcycle)
|-
| LD9/L3A || SiTech (FAW)
|-
| LEC || Tianjin Qingyuan Electric Vehicle Co., Ltd.
|-
| LEF || Jiangling Motors Corporation Ltd. (JMC)
|-
| LEH || Zhejiang Riya Motorcycle Co. Ltd.
|-
| LET || Jiangling-Isuzu Motors, China
|-
| LEW || Dongfeng commercial vehicle
|-
| LE4 || Beijing Benz & Beijing Benz-Daimler Chrysler Automotive Co. (Chrysler, Jeep, Mitsubishi, Mercedes-Benz) & Beijing Jeep Corp.
|-
| LE8 || Guangzhou Panyu Hua'Nan Motors Industry Co. Ltd. (motorcycles)
|-
| LFB || FAW Group (Bestune, Hongqi) & Mazda made under license by FAW (Mazda 8, CX-7)
|-
| LFF || Zhejiang Taizhou Wangye Power Co., Ltd.
|-
| LFG || Taizhou Chuanl Motorcycle Manufacturing
|-
| LFJ || Fujian Motors Group (Keyton)
|-
| LFM || FAW Toyota Motor (Toyota, Ranz)
|-
| LFN || FAW Bus (Wuxi) Co., Ltd. (truck, bus)
|-
| LFP || FAW Car, Bestune, Hongqi (passenger vehicles) & Mazda made under license by FAW (Mazda 6, CX-4)
|-
| LFT || FAW (trailers)
|-
| LFU || Lifeng Group Co., Ltd. (motorcycles)
|-
| LFV || FAW-Volkswagen (VW, Audi, Jetta, Kaili)
|-
| LFW || FAW JieFang (truck)
|-
| LFX || Sany Heavy Industry (truck)
|-
| LFY || Changshu Light Motorcycle Factory
|-
| LFZ || Leapmotor
|-
| LF3 || Lifan Motorcycle
|-
| LGA || Dongfeng Commercial Vehicle Co., Ltd. trucks
|-
| LGB || Dongfeng Nissan (Nissan, Infiniti, Venucia)
|-
| LGB || Dongfeng Commercial Vehicle Co., Ltd.
|-
| LGC || Dongfeng Commercial Vehicle Co., Ltd. bus chassis
|-
| LGD || Dongfeng Commercial Vehicle Co., Ltd.
|-
| LGF || Dongfeng Commercial Vehicle Co., Ltd. bus chassis
|-
| LGG || Dongfeng Liuzhou Motor (Forthing/Fengxing)
|-
| LGJ || Dongfeng Fengshen (Aeolus)
|-
| LGL || Guilin Daewoo
|-
| LGV || Heshan Guoji Nanlian Motorcycle Industry Co., Ltd.
|-
| LGW || Great Wall Motor (GWM, Haval, Ora, Tank, Wey)
|-
| LGX || BYD Auto (BYD, Fangchengbao)
|-
| LGZ || Guangzhou Denway Bus
|-
| LG6 || Dayun Group
|-
| LHA || Shuanghuan Auto
|-
| LHB || Beijing Automotive Industry Holding
|-
| LHG || GAC Honda (Honda, Everus, Acura)
|-
| LHJ || Chongqing Astronautic Bashan Motorcycle Manufacturing Co., Ltd.
|-
| LHM || Dongfeng Renault Automobile Co.
|-
| LHW || CRRC Electric Vehicle Co., Ltd. (bus)
|-
| LH0 || WM Motor Technology Co., Ltd. (Weltmeister)
|-
| LH1 || FAW-Haima, China
|-
| LJC || Jincheng Corporation
|-
| LJD || Yueda Kia (previously Dongfeng Yueda Kia) (Kia, Horki) & Human Horizons - HiPhi (made under contract by Yueda Kia)
|-
| LJM || Sunlong (bus)
|-
| LJN || Zhengzhou Nissan
|-
| LJR || CIMC Vehicles Group (truck trailer)
|-
| LJS || Yaxing Coach, Asiastar Bus
|-
| LJU || Shanghai Maple Automobile & Kandi & Zhidou
|-
| LJU || Lotus Technology (Wuhan Lotus Cars Co., Ltd.)
|-
| LJV || Sinotruk Chengdu Wangpai Commercial Vehicle Co., Ltd.
|-
| LJW || JMC Landwind
|-
| LJX || JMC Ford
|-
| LJ1 || JAC (JAC, Sehol)
|-
| LJ1 || Nio, Inc.
|-
| LJ4 || Shanghai Jmstar Motorcycle Co., Ltd.
|-
| LJ5 || Cixi Kingring Motorcycle Co., Ltd. (Jinlun)
|-
| LJ8 || Zotye Auto made by Jiangnan Automobile
|-
| LKC || BAIC commercial vehicles, previously Changhe
|-
| LKG || Youngman Lotus Automobile Co., Ltd.
|-
| LKH || Hafei Motor
|-
| LKL || Higer Bus
|-
| LKT || Yunnan Lifan Junma Vehicle Co., Ltd. commercial vehicles
|-
| LK2 || Anhui JAC Bus
|-
| LK6 || SAIC-GM-Wuling (Wuling, Baojun) microcars and other vehicles
|-
| LK8 || Zhejiang Yule New Energy Automobile Technology Co., Ltd. (ATV)
|-
| LLC || Loncin Motor Co., Ltd. (motorcycle)
|-
| LLJ || Jiangsu Xinling Motorcycle Fabricate Co., Ltd.
|-
| LLN || Qoros
|-
| LLP || Zhejiang Jiajue Motorcycle Manufacturing Co., Ltd.
|-
| LLU || Dongfeng Fengxing Jingyi
|-
| LLV || Lifan, Maple (owned by Geely), Livan Automotive
|-
| LLX || Yudo Auto
|-
| LL0 || Sanmen County Yongfu Machine Co., Ltd. (motorcycles)
|-
| LL2 || WM Motor Technology Co., Ltd. (Weltmeister)
|-
| LL3 || Xiamen Golden Dragon Bus Co. Ltd.
|-
| LL6 || GAC Mitsubishi Motors Co., Ltd. (formerly Hunan Changfeng)
|-
| LL8 || Jiangsu Linhai Yamaha Motor Co., Ltd.
|-
| LMC || Suzuki Hong Kong (motorcycles)
|-
| LME || Skyworth (formerly Skywell), Elaris Beo
|-
| LMF || Jiangmen Zhongyu Motor Co., Ltd.
|-
| LMG || GAC Motor, Trumpchi, [[w:Dodge Attitude#Fourth generation (2025)|Dodge Attitude made by GAC]]
|-
| LMH || Jiangsu Guowei Motor Co., Ltd. (Motoleader)
|-
| LMP || Geely Sichuan Commercial Vehicle Co., Ltd.
|-
| LMV || Haima Car Co., Ltd.
|-
| LMV || XPeng Motors G3 (not G3i) made by Haima
|-
| LMW || GAC Group, [[w:Trumpchi GS5#Dodge Journey|Dodge Journey made by GAC]]
|-
| LMX || Forthing (Dongfeng Fengxing)
|-
| LM0 || Wangye Holdings Co., Ltd. (motorcycles)
|-
| LM6 || SWM (automobiles)
|-
| LM8 || Seres (formerly SF Motors), AITO
|-
| LNA || GAC Aion New Energy Automobile Co., Ltd., Hycan
|-
| LNB || BAIC Motor (Senova, Weiwang, Huansu) & Arcfox & Xiaomi SU7 built by BAIC
|-
| LND || JMEV (Jiangxi Jiangling Group New Energy Vehicle Co., Ltd.), Eveasy/Mobilize Limo
|-
| LNE || Zhejiang CRRC Electric Vehicle Co., Ltd. (bus)
|-
| LNP || NAC MG UK Limited & Nanjing Fiat Automobile
|-
| LNN || Chery Automobile, Omoda, Jaecoo
|-
| LNV || Naveco (Nanjing Iveco Automobile Co. Ltd.)
|-
| LNX || Dongfeng Liuzhou Motor (Chenglong trucks)
|-
| LNY || Yuejin
|-
| LPA || Changan PSA (DS Automobiles)
|-
| LPE || BYD Auto
|-
| LPS || Polestar
|-
| LP6 || Guangzhou Panyu Haojian Motorcycle Industry Co., Ltd.
|-
| LRB || SAIC-General Motors (Buick for export)
|-
| LRD || Beijing Foton Daimler Automotive Co., Ltd. Auman trucks
|-
| LRE || SAIC-General Motors (Cadillac for export)
|-
| LRP || Chongqing Rato Power Co. Ltd. (Asus)
|-
| LRR || Ningbo Longjia Power Technology Co., Ltd. (motorcycles)
|-
| LRW || Tesla, Inc. (Gigafactory Shanghai)
|-
| LR4 || Yadi Technology Group
|-
| LR6 || Guangzhou Dayun Vehicle Co., Ltd.
|-
| LSC || Changan Automobile (light truck)
|-
| LSF || SAIC Maxus or LDV pickup/SUV & Chevrolet S10 Max & Shanghai Sunwin Bus Corporation
|-
| LSG || SAIC-General Motors (For China: Chevrolet, Buick, Cadillac, Sail Springo, For export: Chevrolet)
|-
| LSH || SAIC Maxus van or LDV van & Chevrolet Express Max
|-
| LSJ || SAIC MG & SAIC Roewe & IM Motors & Rising Auto
|-
| LSK || SAIC Maxus or LDV van
|-
| LSV || SAIC-Volkswagen (VW, Skoda, Audi, Tantus)
|-
| LSY || Brilliance (Jinbei, Zhonghua) & Jinbei GM
|-
| LS3 || Hejia New Energy Vehicle Co., Ltd
|-
| LS4 || Changan Automobile (MPV/SUV)
|-
| LS5 || Changan Automobile (car) & Changan Suzuki
|-
| LS6 || Changan Automobile & Deepal Automobile & Avatr
|-
| LS7 || JMC Heavy Duty Truck Co., Ltd.
|-
| LS8 ||Henan Shaolin Auto Co., Ltd. (bus)
|-
| LTA || ZX Auto
|-
| LTN || Soueast-built Chrysler & Dodge vehicles
|-
| LTP || National Electric Vehicle Sweden AB (NEVS)
|-
| LTV || FAW [[../Toyota/VIN Codes|Toyota]] (Tianjin)
|-
| LTW || Zhejiang Dianka Automobile Technology Co. Ltd. (Enovate)
|-
| LT1 || Yangzhou Tonghua Semi-Trailer Co., Ltd. (truck trailer)
|-
| LUC || [[../Honda/VIN Codes|Honda]] Automobile (China)
|-
| LUD || Dongfeng Nissan Diesel Motor Co Ltd.
|-
| LUG || Qiantu Motor
|-
| LUJ || Zhejiang Shanqi Tianying Vehicle Industry Co., Ltd. (motorcycles)
|-
| LUR || Chery Automobile, iCar
|-
| LUX || Dongfeng Yulon Motor Co. Ltd.
|-
| LUZ || Hozon Auto New Energy Automobile Co., Ltd. (Neta)
|-
| LVA || Foton Motor
|-
| LVB || Foton Motor truck
|-
| LVC || Foton Motor bus
|-
| LVF || Changhe Suzuki
|-
| LVG || GAC Toyota (Toyota, Leahead)
|-
| LVH || Dongfeng Honda (Honda, Ciimo)
|-
| LVM || Chery Commercial Vehicle
|-
| LVP || Dongfeng Sokon Motor Company (DFSK)
|-
| LVR || Changan Mazda
|-
| LVS || Changan [[../Ford/VIN Codes|Ford]] (Ford, Lincoln) & Changan Ford Mazda & Volvo S40 and S80L made by Changan Ford Mazda
|-
| LVT || Chery Automobile, Exeed, Jetour, Soueast
|-
| LVU || Chery Automobile, Jetour
|-
| LVV || Chery Automobile, Omoda, Jaecoo
|-
| LVX || Landwind, JMC (discontinued in 2021)
|-
| LVX || Aiways Automobiles Company Ltd
|-
| LVY || Volvo Cars Daqing factory
|-
| LVZ || Dongfeng Sokon Motor Company (DFSK)
|-
| LV3 || Hengchi Automobile (Evergrande Group)
|-
| LV7 || Jinan Qingqi Motorcycle
|-
| LWB || Wuyang Honda Motorcycle (Guangzhou) Co., Ltd.
|-
| LWE || Yangtse Motor Group (bus)
|-
| LWG || Chongqing Huansong Industries (Group) Co., Ltd.
|-
| LWL || Qingling Isuzu
|-
| LWM || Chongqing Wonjan Motorcycle Co., Ltd.
|-
| LWV || GAC Fiat Chrysler Automobiles (Fiat, Jeep)
|-
| LWX || Shanghai Wanxiang Automobile Manufacturing Co., Ltd. (bus)
|-
| LW4 || Li Auto
|-
| LXA || Jiangmen Qipai Motorcycle Co., Ltd.
|-
| LXD || Ningbo Dongfang Lingyun Vehicle Made Co., Ltd. (motorcycle)
|-
| LXG || Xuzhou Construction Machinery Group Co., Ltd. (XCMG)
|-
| LXK || Shanghai Meitian Motorcycle Co., Ltd.
|-
| LXM || Xiamen Xiashing Motorcycle Co., Ltd. (SYM)
|-
| LXN || Link Tour
|-
| LXV || Beijing Borgward Automotive Co., Ltd.
|-
| LXW || JMC - Ford
|-
| LXY || Chongqing Shineray Motorcycle Co., Ltd.
|-
| LX6 || Jiangmen City Huari Group Co. Ltd. (motorcycle)
|-
| LX8 || Chongqing Xgjao (Xinganjue) Motorcycle Co Ltd.
|-
| LYB || Weichai (Yangzhou) Yaxing Automobile Co., Ltd.
|-
| LYD || Taizhou City Kaitong Motorcycle Co., Ltd. (motorcycle)
|-
| LYJ || Beijing ZhongdaYanjing Auto Co., Ltd. (bus)
|-
| LYM || Zhuzhou Jianshe Yamaha Motorcycle Co., Ltd.
|-
| LYS || Nanjing Vmoto Manufacturing Co. Ltd. (motorcycle)
|-
| LYU || Huansu (BAIC Motor & Yinxiang Group)
|-
| LYV || Volvo Cars Chengdu factory & Taizhou, Luqiao District factory
|-
| LY4 || Chongqing Yingang Science & Technology Group Co., Ltd. (motorcycle)
|-
| LZE || Isuzu Guangzhou, China
|-
| LZF || SAIC Iveco Hongyan (-2021), SAIC Hongyan (2021-)
|-
| LZG || Shaanxi Automobile Group (Shacman)
|-
| LZK || Sinotruk (CNHTC) Huanghe bus
|-
| LZL || Zengcheng Haili Motorcycle Ltd.
|-
| LZM || MAN China
|-
| LZP || Zhongshan Guochi Motorcycle (Baotian)
|-
| LZS || Zongshen, Electra Meccanica Vehicles Corp. (Solo) made by Zongshen
|-
| LZU || Guangzhou Isuzu Bus
|-
| LZW || SAIC-GM-Wuling (Wuling, Baojun, Chevrolet [for export])
|-
| LZY || Yutong Bus Co., Ltd.
|-
| LZZ || Sinotruk (CNHTC) (Howo, Sitrak)
|-
| LZ0 || Shandong Wuzheng Group Co., Ltd.
|-
| LZ4 || Jiangsu Linzhi Shangyang Group Co Ltd.
|-
| LZ9/LZX || Raysince
|-
| L0N || Ezytrail (camper trailers)
|-
| L1K || Chongqing Hengtong Bus Co., Ltd.
|-
| L1N || XPeng Motors
|-
| L10 || Geely Emgrand
|-
| L2B || Jiangsu Baodiao Locomotive Co., Ltd. (motorcycles)
|-
| L2C || Chery Jaguar Land Rover
|-
| L3H || Shanxi Victory Automobile Manufacturing Co., Ltd.
|-
| L37 || Huzhou Daixi Zhenhua Technology Trade Co., Ltd. (motorcycles)
|-
| L4B || Xingyue Group (motorcycles)
|-
| L4F || Suzhou Eagle Electric Vehicle Manufacturing Co., Ltd.
|-
| L4H || Ningbo Longjia Motorcycle Co., Ltd.
|-
| L4S || Zhejiang Xingyue Vehicle Co Ltd. (motorcycles)
|-
| L4Y || Qingqi Group Ningbo Rhon Motorcycle / Ningbo Dalong Smooth Locomotive Industry Co., Ltd.
|-
| L5C || Zhejiang Kangdi Vehicles Co., Ltd. (motorcycles, ATVs)
|-
| L5E || Zoomlion Heavy Industry Science & Technology Co., Ltd.
|-
| L5K || Zhejiang Yongkang Easy Vehicle
|-
| L5N || Zhejiang Taotao (ATV & motorcycles)
|-
| L5Y || Taizhou Zhongneng Motorcycle Co. Ltd. (Znen)
|-
| L6F || Shandong Liangzi Power Co. Ltd.
|-
| L6J || Zhejiang Kayo Motor Co. Ltd. (ATV)
|-
| L6K || Shanghai Howhit Machinery Manufacture Co. Ltd.
|-
| L6T || Geely, Lynk & Co, Zeekr
|-
| L66 || Zhuhai Granton Bus and Coach Co. Ltd.
|-
| L82 || Baotian
|-
| L85 || Zhejiang Yongkang Huabao Electric Appliance
|-
| L8A || Jinhua Youngman Automobile Manufacturing Co., Ltd.
|-
| L8X || Zhejiang Summit Huawin Motorcycle
|-
| L8Y || Zhejiang Jonway Motorcycle Manufacturing Co., Ltd.
|-
| L9G || Zhuhai Guangtong Automobile Co., Ltd. (bus)
|-
| L9N || Zhejiang Taotao Vehicles Co., Ltd.
|-
| MAA || India Kawasaki Motors Pvt. Ltd.
|-
| MAB || Mahindra & Mahindra
|-
| MAC || Mahindra & Mahindra
|-
| MAH || Fiat India Automobiles Pvt. Ltd
|-
| MAJ || [[../Ford/VIN Codes|Ford]] India
|-
| MAK || [[../Honda/VIN Codes|Honda]] Cars India
|-
| MAL || Hyundai Motor India
|-
| MAN || Eicher Polaris Multix
|-
| MAT || Tata Motors, Rover CityRover
|-
| MA1 || Mahindra & Mahindra
|-
| MA3 || Maruti Suzuki India (domestic & export)
|-
| MA6 || GM India
|-
| MA7 || Hindustan Motors Ltd. & Mitsubishi Motors & Isuzu models made by Hindustan Motors
|-
| MA8 || Daewoo Motor India
|-
| MBF || Royal Enfield
|-
| MBH || Suzuki (for export) & Nissan Pixo made by Maruti Suzuki India Limited
|-
| MBJ || [[../Toyota/VIN Codes|Toyota]] Kirloskar Motor Pvt. Ltd.
|-
| MBK || MAN Trucks India Pvt. Ltd.
|-
| MBL || Hero MotoCorp
|-
| MBR || Mercedes-Benz India
|-
| MBU || Swaraj Vehicles Limited
|-
| MBV || Premier Automobiles Ltd.
|-
| MBX || Piaggio India (Piaggio Ape)
|-
| MBY || Asia Motor Works Ltd.
|-
| MB1 || Ashok Leyland
|-
| MB2 || Hyundai Motor India (SUV)
|-
| MB7 || Reva Electric Car Company/Mahindra Reva Electric Vehicles Pvt. Ltd.
|-
| MB8 || Suzuki Motorcycle India Limited
|-
| MCA || FCA India Automobiles Pvt. Ltd. (Fiat, Jeep)
|-
| MCB || GM India
|-
| MCD || Mahindra Two Wheelers
|-
| MCG || Atul Auto Ltd.
|-
| MCL || International Cars And Motors Ltd.
|-
| MC1 || Force Motors Ltd.
|-
| MC2 || Eicher Motors Ltd./Volvo Eicher Commercial Vehicles Ltd.
|-
| MC4 || Dilip Chhabria Design Pvt Ltd.
|-
| MC9/RE1 || Reva Electric Car Company (Reva G-Wiz)
|-
| MDE || Kinetic Engineering Limited
|-
| MDH || Nissan Motor India Pvt Ltd. (including Datsun)
|-
| MDT || Kerala Automobiles Limited
|-
| MD2 || Bajaj Auto Ltd. & KTM and Husqvarna motorcycles built by Bajaj & Indian-market Triumph motorcycles built by Bajaj
|-
| MD6 || TVS Motor Company
|-
| MD7 || LML Ltd including Genuine Scooter Company Stella
|-
| MD9 || Shuttle Cars India
|-
| MEC || Daimler India Commercial Vehicles (BharatBenz)
|-
| MEE || Renault India Private Limited
|-
| MEG || Harley-Davidson India
|-
| MER || Benelli India
|-
| MES || Mahindra Navistar
|-
| MET || Piaggio India (Vespa, Indian-market Aprilia)
|-
| MEX || Škoda Auto Volkswagen India Pvt. Ltd. 2015 on
|-
| ME1 || India Yamaha Motor Pvt. Ltd.
|-
| ME3 || Royal Enfield
|-
| ME4 || Honda Motorcycle and Scooter India
|-
| MYH || Ather Energy
|-
| MZB || Kia India Pvt. Ltd.
|-
| MZD || Classic Legends Private Limited – Jawa
|-
| MZZ || Citroen India (PCA Automobiles India Private Limited)
|-
| MZ7 || MG Motor India Pvt. Ltd.
|-
| M3G || Isuzu Motors India
|-
| M6F || UM Lohia Two Wheelers Private Limited
|-
| ME9/ || BUYMYEV TECHNOLOGY PVT. LTD. (Indibike)
|-
| MF3 || PT Hyundai Motor Manufacturing Indonesia
|-
| MHB || PT Nissan Motor Indonesia
|-
| MHD || PT Indomobil Suzuki International
|-
| MHF || PT [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing Indonesia
|-
| MHK || PT Astra Daihatsu Motor (includes Toyotas made by Astra Daihatsu)
|-
| MHL || PT Mercedes-Benz Indonesia
|-
| MHR || [[../Honda/VIN Codes|Honda]] Indonesia (PT Honda Prospect Motor) (car)
|-
| MHY || PT Suzuki Indomobil Motor (car, MPV, van)
|-
| MH1 || PT Astra Honda Motor (motorcycle)
|-
| MH3 || PT Yamaha Indonesia Motor Mfg.
|-
| MH4 || PT Kawasaki Motor Indonesia
|-
| MH8 || PT Suzuki Indomobil Motor (motorcycle)
|-
| MJB || GM Indonesia
|-
| MKF || PT Sokonindo Automobile (DFSK)
|-
| MK2 || PT Mitsubishi Motors Krama Yudha Indonesia
|-
| MK3 || PT SGMW Motor Indonesia (Wuling)
|-
| MLB || Siam Yamaha Co Ltd.
|-
| MLC || Thai Suzuki Motor Co., Ltd. (motorcycle)
|-
| MLE || Thai Yamaha Motor Co., Ltd.
|-
| MLH || Thai [[../Honda/VIN Codes|Honda]] Manufacturing Co., Ltd. (motorcycle)
|-
| MLW || Sco Motor Co., Ltd. (motorcycle)
|-
| MLY || Harley-Davidson Thailand
|-
| ML0 || Ducati Motor (Thailand) Co., Ltd.
|-
| ML3 || Mitsubishi Motors, Dodge Colt 100 [Canada], [[w:Dodge Attitude#Third generation (A10; 2015)|Dodge Attitude]] [Mexico] made by Mitsubishi (Thailand)
|-
| ML5 || Kawasaki Motors Enterprise Co. Ltd. (Thailand)
|-
| MMA || Mitsubishi Motors (Thailand)
|-
| MMB || Mitsubishi Motors (Thailand)
|-
| MMC || Mitsubishi Motors (Thailand)
|-
| MMD || Mitsubishi Motors (Thailand)
|-
| MME || Mitsubishi Motors (Thailand)
|-
| MMF || BMW Manufacturing (Thailand) Co., Ltd.
|-
| MML || MG Thailand (SAIC-CP)
|-
| MMM || Chevrolet Thailand, Holden Colorado RC pickup
|-
| MMR || Subaru/Tan Chong Subaru Automotive (Thailand) Co. Ltd.
|-
| MMS || Suzuki Motor (Thailand) Co., Ltd. (passenger car)
|-
| MMT || Mitsubishi Motors (Thailand)
|-
| MMU || Holden Thailand (Colorado RG, Colorado 7, & Trailblazer)
|-
| MM0, MM6, MM7, MM8 || Mazda Thailand (Ford-Mazda AutoAlliance Thailand plant)
|-
| MNA || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for Australia/New Zealand export
|-
| MNB || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for other right-hand drive markets
|-
| MNC || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for left-hand drive markets
|-
| MNK || Hino Motors Manufacturing Thailand Co Ltd.
|-
| MNT || Nissan Motor (Thailand) Co., Ltd.
|-
| MNU || Great Wall Motor Manufacturing (Thailand) Co., Ltd.
|-
| MN3 || Eagle Vista [Canada] made by Mitsubishi (Thailand)
|-
| MPA || Isuzu Motors (Thailand) Co., Ltd. & Holden Rodeo RA pickup made by Isuzu in Thailand
|-
| MPB || [[../Ford/VIN Codes|Ford]] Thailand (Ford Thailand Manufacturing plant)
|-
| MP1 || Isuzu Motors (Thailand) Co., Ltd.
|-
| MP2 || Mazda BT-50 pickup built by Isuzu Motors (Thailand) Co., Ltd.
|-
| MP3 || Plymouth Colt 100 [Canada] made by Mitsubishi (Thailand)
|-
| MP5 || Foton Motor Thailand
|-
| MRH || [[../Honda/VIN Codes|Honda]] Thailand (car)
|-
| MRT || Neta (Hozon Auto) made by Bangchan General Assembly Co., Ltd.
|-
| MR0 || [[../Toyota/VIN Codes|Toyota]] Thailand (pickups & Fortuner SUV)
|-
| MR1 || [[../Toyota/VIN Codes|Toyota]] Thailand
|-
| MR2 || [[../Toyota/VIN Codes|Toyota]] Thailand (Gateway plant) (passenger cars & CUVs)
|-
| MR3 || [[../Toyota/VIN Codes|Toyota]] Thailand (Hilux Champ chassis cab)
|-
| MS0 || [[../SUPER SEVEN STARS MOTORS INDUSTRY CO.,LTD/VIN Codes|Super Seven Stars Motors]] Myanmar
|-
| MS1 || [[../SUPER SEVEN STARS AUTOMOTIVE CO.,LTD/VIN Codes|Super Seven Stars Automotive]] Myanmar
|-
| MS3 || Suzuki Myanmar Motor Co., Ltd.
|-
| MXB || Saryarka AvtoProm bus (Kazakhstan)
|-
| MXL || Yutong bus made by Qaz Tehna (Kazakhstan)
|-
| MXV || IMZ-Ural Ural Motorcycles (Kazakhstan)
|-
| MX3 || Hyundai Trans Auto (Kazakhstan)
|-
| NAA || Iran Khodro (Peugeot Iran)
|-
| NAC || Mammut (truck trailers)
|-
| NAD || Škoda
|-
| NAL || Maral Sanat Jarvid (truck trailers)
|-
| NAP || Pars Khodro
|-
| NAS || SAIPA
|-
| NC0 || Oghab Afshan (bus)
|-
| NC9/ || VIRA Diesel
|-
| ND9/345 || Oghab Afshan (bus)
|-
| NFB || Honda Atlas Cars Pakistan Ltd.
|-
| NG3 || Lucky Motor Corporation
|-
| NLA || Honda Turkiye A.S. cars
|-
| NLC || Askam Kamyon Imalat Ve Ticaret A.S.
|-
| NLE || Mercedes-Benz Türk A.S. Truck
|-
| NLF || Koluman Otomotiv Endustri A.S. (truck trailer)
|-
| NLH || [[../Hyundai/VIN Codes|Hyundai]] Assan Otomotiv car/SUV
|-
| NLJ || [[../Hyundai/VIN Codes|Hyundai]] Assan Otomotiv van
|-
| NLN || Karsan
|-
| NLR || Otokar
|-
| NLT || Temsa
|-
| NLZ || Tezeller
|-
| NL1 || TOGG
|-
| NL2 || HABAS/HBS (bus)
|-
| NMA || MAN Türkiye A.Ş.
|-
| NMB || Mercedes-Benz Türk A.S. Buses
|-
| NMC || BMC Otomotiv Sanayi ve Ticaret A.Ş.
|-
| NMH || Honda Anadolu motorcycle
|-
| NMS || Otoyol San. A.Ş.
|-
| NMT || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing Turkey
|-
| NM0 || Ford Otosan
|-
| NM1 || Oyak Renault Otomobil Fabrikaları A.Ş.
|-
| NM4 || Tofaş (Turk Otomobil Fabrikasi AS)
|-
| NNA || Anadolu Isuzu
|-
| NNN || Gépébus Oréos 4X (based on Otokar Vectio)
|-
| NNY || Yeksan (truck trailer)
|-
| NPM || Seyit Usta Treyler (truck trailer)
|-
| NPR || Oztreyler (truck trailer)
|-
| NPS || Nursan (truck trailer)
|-
| NP8|| ÖZGÜL TREYLER (truck trailer)
|-
| NP9/002 || OKT Trailer (truck trailer)
|-
| NP9/003 || Aksoylu Trailer (truck trailer)
|-
| NP9/011 || Güleryüz (bus)
|-
| NP9/021 || Dogumak (truck trailer)
|-
| NP9/022 || Alim (truck trailer)
|-
| NP9/042 || Ali Rıza Usta (truck trailer)
|-
| NP9/066 || Makinsan (truck trailer)
|-
| NP9/093 || BRF Trailer (truck trailer)
|-
| NP9/103 || Türkkar (bus)
|-
| NP9/106 || Çarsan Treyler (truck trailer)
|-
| NP9/107 || Arbus Perfect (bus)
|-
| NP9/108 || Guven Makina (truck trailer)
|-
| NP9/117 || Katmerciler (truck trailer)
|-
| NP9/300 || TCV (bus)
|-
| NP9/258 || Ceytrayler (truck trailer)
|-
| NP9/306 || Cryocan (truck trailer)
|-
| NRE || Bozankaya
|-
| NRX || Musoshi
|-
| NRY || Pilotcar Otomotiv
|-
| NR9/012 || Doğan Yıldız (truck trailer)
|-
| NR9/028 || Micansan (truck trailer)
|-
| NR9/029 || Yilteks (truck trailer)
|-
| NR9/034 || Akia (bus)
|-
| NR9/084 || Harsan (truck trailer)
|-
| NR9/257 || Vega Trailer (truck trailer)
|-
| NSA || SamAvto / SAZ (Uzbekistan)
|-
| NS2 || JV MAN Auto - Uzbekistan
|-
| NVA || Khazar (IKCO Dena made in Azerbaijan)
|-
| PAB || Isuzu Philippines Corporation
|-
| PAD || Honda Cars Philippines
|-
| PE1 || Ford Motor Company Philippines
|-
| PE3 || Mazda Philippines made by Ford Motor Company Philippines
|-
| PFD || Hyundai Motor Group Innovation Center in Singapore (HMGICS)
|-
| PL1 || Proton, Malaysia
|-
| PL8 || Inokom-Hyundai
|-
| PLP || Subaru/Tan Chong Motor Assemblies, Malaysia
|-
| PLZ || Isuzu Malaysia
|-
| PMA || MAN Truck & Bus Malaysia
|-
| PMH || Honda Malaysia (car)
|-
| PMK || Honda Boon Siew (motorcycle)
|-
| PML || Hicom
|-
| PMN || Modenas
|-
| PMS || Suzuki Assemblers Malaysia (motorcycle)
|-
| PMV || Hong Leong Yamaha Motor Sdn. Bhd.
|-
| PMY || Hong Leong Yamaha Motor Sdn. Bhd.
|-
| PM1 || BMW & Mini/Inokom
|-
| PM2 || Perodua
|-
| PM9/ || Bufori
|-
| PNA || Naza/Kia/Peugeot
|-
| PNA || Stellantis Gurun (Malaysia) Sdn. Bhd. (Peugeot)
|-
| PNS || SKSBUS Malaysia (bus)
|-
| PNS || TMSBUS Malaysia (bus)
|-
| PNV || Volvo Car Manufacturing Malaysia
|-
| PN1 || UMW Toyota Motor
|-
| PN2 || UMW Toyota Motor
|-
| PN8 || Nissan/Tan Chong Motor Assemblies, Malaysia
|-
| PPP || Suzuki
|-
| PPV || Volkswagen/HICOM Automotive Manufacturers (Malaysia)
|-
| PP1 || Mazda/Inokom
|-
| PP3 || Hyundai/Inokom
|-
| PRA || Sinotruk
|-
| PRH || Chery (by Chery Alado Holdings [joint venture] at Oriental Assemblers plant)
|-
| PRX || Kia/Inokom
|-
| PR8 || Ford
|-
| PRN || GAC Trumpchi made by Warisan Tan Chong Automotif Malaysia
|-
| PV3 || Ford made by RMA Automotive Cambodia
|-
| RA1 || Steyr Trucks International FZE, UAE
|-
| RA9/015 || Al-Assri Industries (Trailers), UAE
|-
| LFA || Ford Lio Ho Motor Co Ltd. old designation (Taiwan)
|-
| LM1 || Tai Ling Motor Co Ltd. old designation (Suzuki motorcycle made by Tai Ling) (Taiwan)
|-
| LM4 || Tai Ling Motor Co Ltd. old designation (Suzuki ATV made by Tai Ling) (Taiwan)
|-
| LN1 || Tai Ling Motor Co Ltd. old designation (Suzuki motorcycle made by Tai Ling) (Taiwan)
|-
| LPR || Yamaha Motor Taiwan Co. Ltd. old designation (Taiwan)
|-
| RFB || Kwang Yang Motor Co., Ltd. (Kymco), Taiwan
|-
| RFC || Taiwan Golden Bee
|-
| RFD || Tai Ling Motor Co Ltd. new designation (Taiwan)
|-
| RFG || Sanyang Motor Co., Ltd. (SYM) Taiwan
|-
| RFL || Her Chee Industrial Co., Ltd. (Adly), Taiwan
|-
| RFT || CPI Motor Company, Taiwan
|-
| RFV || Motive Power Industry Co., Ltd. (PGO Scooters including Genuine Scooter Company models made by PGO) (Taiwan)
|-
| RF3 || Aeon Motor Co., Ltd., Taiwan
|-
| RF5 || Yulon Motor Co. Ltd., Taiwan (Luxgen)
|-
| RF8 || EVT Technology Co., Ltd (motorcycle)
|-
| RGS || Kawasaki made by Kymco (Taiwan)
|-
| RHA || Ford Lio Ho Motor Co Ltd. new designation (Taiwan)
|-
| RKJ || Prince Motors Taiwan
|-
| RKL || Kuozui Motors (Toyota) (Taiwan)
|-
| RKM || China Motor Corporation (Taiwan)
|-
| RKR || Yamaha Motor Taiwan Co. Ltd. new designation
|-
| RKT || Access Motor Co., Ltd. (Taiwan)
|-
| RK3 || E-Ton Power Tech Co., Ltd. (motorcycle) (Taiwan)
|-
| RK3 || Honda Taiwan
|-
| RK7 || Kawasaki ATV made by Tai Ling Motor Co Ltd (rebadged Suzuki ATV) new designation (Taiwan)
|-
| RLA || Vina Star Motors Corp. – Mitsubishi (Vietnam)
|-
| RLC || Yamaha Motor Vietnam Co. Ltd.
|-
| RLE || Isuzu Vietnam Co.
|-
| RLH || Honda Vietnam Co. Ltd.
|-
| RLL || VinFast SUV
|-
| RLM || Mercedes-Benz Vietnam
|-
| RLN || VinFast
|-
| RLV || Vietnam Precision Industrial CO., Ltd. (Can-Am DS 70 & DS 90)
|-
| RL0 || Ford Vietnam
|-
| RL4 || Toyota Motor Vietnam
|-
| RP8 || Piaggio Vietnam Co. Ltd.
|-
| RUN || Sollets-Auto ST6 (Russia)
|-
| R1J || Jiayuan Power (Hong Kong) Ltd. (Electric Low-Speed Vehicles) (Hong Kong)
|-
| R1N || Niu Technologies Group Ltd. (Hong Kong)
|-
| R10 || ZAP (HK) Co. Ltd.
|-
| R19/003 || GMI (bus) (Hong Kong)
|-
| R2P || Evoke Electric Motorcycles (Hong Kong)
|-
| R3M || Mangosteen Technology Co., Ltd. (Hong Kong)
|-
| R36 || HK Shansu Technology Co., Ltd. (Hong Kong)
|-
| R4N || Elyx Smart Technology Holdings (Hong Kong) Ltd.
|-
| R82 || Hangzhou Lantu Technology Co., Ltd. (Hong Kong)
|-
| SAA || Austin
|-
| SAB || Optare (1985-2020), Switch Mobility (2021-)
|-
| SAD || Daimler Company Limited (until April 1987)
|-
| SAD || Jaguar SUV (E-Pace, F-Pace, I-Pace)
|-
| SAF || ERF trucks
|-
| SAH || Honda made by Austin Rover Group
|-
| SAJ || Jaguar passenger car & Daimler passenger car (after April 1987)
|-
| SAL || [[../Land Rover/VIN Codes|Land Rover]]
|-
| SAM || Morris
|-
| SAR || Rover & MG Rover Group
|-
| SAT || Triumph car
|-
| SAX || Austin-Rover Group including Sterling Cars
|-
| SAY || Norton Motorcycles
|-
| SAZ || Freight Rover
|-
| SA3 || Ginetta Cars
|-
| SA9/ || OX Global
|-
| SA9/A11 || Morgan Roadster (V6) (USA)
|-
| SA9/J00 || Morgan Aero 8 (USA)
|-
| SA9/004 || Morgan (4-wheel passenger cars)
|-
| SA9/005 || Panther
|-
| SA9/010 || Invicta S1
|-
| SA9/011 || Midas Cars
|-
| SA9/019 || TVR
|-
| SA9/022 || Triking Sports Cars
|-
| SA9/026 || Fleur de Lys
|-
| SA9/036 || Ginetta Cars
|-
| SA9/038 || DAX Cars
|-
| SA9/039 || Westfield Sportscars
|-
| SA9/048 || McLaren F1
|-
| SA9/050 || Marcos Engineering
|-
| SA9/062 || AC Cars (Brooklands Ace)
|-
| SA9/068 || Johnston Sweepers
|-
| SA9/073 || Tomita Auto UK (Tommykaira ZZ)
|-
| SA9/074 || Ascari
|-
| SA9/088 || Spectre Angel
|-
| SA9/105 || Mosler Europe Ltd.
|-
| SA9/113 || Noble
|-
| SA9/130 || MG Sport and Racing
|-
| SA9/141 || Wrightbus
|-
| SA9/202 || Morgan 3-Wheeler, Super 3
|-
| SA9/207 || Radical Sportscars
|-
| SA9/211 || BAC (Briggs Automotive Company Ltd.)
|-
| SA9/225 || Paneltex (truck trailer)
|-
| SA9/231 || Peel Engineering
|-
| SA9/337 || Ariel
|-
| SA9/341 || Zenos
|-
| SA9/438 || Charge Cars
|-
| SA9/458 || Gordon Murray Automotive
|-
| SA9/474 || Mellor (bus)
|-
| SA9/612 || Tiger Racing (kit car)
|-
| SA9/621 || AC Cars (Ace)
|-
| SBB || Leyland Vehicles
|-
| SBC || Iveco Ford Truck
|-
| SBF || Nugent (trailer)
|-
| SBJ || Leyland Bus
|-
| SBL || Leyland Motors & Leyland DAF
|-
| SBM || McLaren
|-
| SBS || Scammell
|-
| SBU || United Trailers (truck trailer)
|-
| SBV || Kenworth & Peterbilt [incomplete vehicle] made by Leyland Trucks
|-
| SBW || Weightlifter Bodies (truck trailer)
|-
| SB1 || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing UK
|-
| SCA || Rolls Royce passenger car
|-
| SCB || Bentley passenger car
|-
| SCC || Lotus Cars & Opel Lotus Omega/Vauxhall Lotus Carlton
|-
| SCD || Reliant Motors
|-
| SCE || DeLorean Motor Cars N. Ireland (UK)
|-
| SCF || Aston Martin Lagonda Ltd. passenger car & '21 DBX SUV
|-
| SCG || Triumph Engineering Co. Ltd. (original Triumph Motorcycle company)
|-
| SCK || Ifor Williams Trailers
|-
| SCM || Manitowoc Cranes - Grove
|-
| SCR || London Electric Vehicle Company & London Taxi Company & London Taxis International
|-
| SCV || Volvo Truck & Bus Scotland
|-
| SC5 || Wrightbus (from ~2020)
|-
| SC6 || INEOS Automotive SUV
|-
| SDB || Talbot
|-
| SDC || SDC Trailers Ltd. (truck trailer)
|-
| SDF || Dodge Trucks – UK 1981–1984
|-
| SDG || Renault Trucks Industries 1985–1992
|-
| SDK || Caterham Cars
|-
| SDL || TVR
|-
| SDP || NAC MG UK & MG Motor UK Ltd.
|-
| SDU || Utility (truck trailer)
|-
| SD7 || Aston Martin SUV
|-
| SD8 || Moke International Ltd.
|-
| SED || IBC Vehicles (General Motors Luton Plant) (Opel/Vauxhall, 1st gen. Holden Frontera, Isuzu Midi)
|-
| SEG || Dennis Eagle Ltd., including Renault Trucks Access and D Access
|-
| SEP || Don-Bur (truck trailer)
|-
| SEY || LDV Group Ltd.
|-
| SFA || [[../Ford/VIN Codes|Ford]] UK
|-
| SFD || Dennis UK / Alexander Dennis
|-
| SFE || Alexander Dennis UK
|-
| SFR || Fruehauf (truck trailer)
|-
| SFN || Foden Trucks & Kenworth [truck] made by Foden Trucks
|-
| SFZ || Tesla Roadster made by Lotus
|-
| SGA || Avondale (caravans)
|-
| SGB || Bailey (caravans)
|-
| SGD || Swift Group Ltd. (caravans)
|-
| SGE || Elddis (caravans)
|-
| SGL || Lunar Caravans Ltd.
|-
| SG4 || Coachman (caravans)
|-
| SHH || [[../Honda/VIN Codes|Honda]] UK passenger car
|-
| SHS || [[../Honda/VIN Codes|Honda]] UK SUV
|-
| SH7 || INEOS Automotive truck
|-
| SJA || Bentley SUV
|-
| SJB || Brian James Trailers Ltd
|-
| SJK || Nissan Motor Manufacturing UK - Infiniti
|-
| SJN || Nissan Motor Manufacturing UK - Nissan
|-
| SJ1 || Ree Automotive
|-
| SKA || Vauxhall
|-
| SKB || Kel-Berg Trailers & Trucks
|-
| SKF || Bedford Vehicles
|-
| SKL || Anaig (UK) Technology Ltd
|-
| SLA || Rolls Royce SUV
|-
| SLC || Thwaites Dumpers
|-
| SLG || McMurtry Automotive
|-
| SLN || Niftylift
|-
| SLP || JC Bamford Excavators Ltd.
|-
| SLV || Volvo bus
|-
| SMR || Montracon (truck trailer)
|-
| SMT || Triumph Motorcycles Ltd. (current Triumph Motorcycle company)
|-
| SMW || Cartwright (truck trailer)
|-
| SMX || Gray & Adams (truck trailer)
|-
| SNE || Barkas (East Germany)
|-
| SNE || Wartburg (East Germany)
|-
| SNT || Trabant (East Germany)
|-
| SNZ || MZ (motorcycle) (Germany)
|-
| SPE || B-ON GmbH (Germany)
|-
| ST3 || Calabrese (truck trailer)
|-
| SUA || Autosan (bus)
|-
| SUB || Tramp Trail (trailer)
|-
| SUC || Wiola (trailer)
|-
| SUD || Wielton (truck trailers)
|-
| SUF || FSM/Fiat Auto Poland (Polski Fiat)
|-
| SUG || Mega Trailers (truck trailer) (Poland)
|-
| SUJ || Jelcz (Poland)
|-
| SUL || FSC (Poland)
|-
| SUM || Novatrail (truck trailers)
|-
| SUP || FSO/Daewoo-FSO (Poland)
|-
| SUU || Solaris Bus & Coach (Poland)
|-
| SU9/AR1 || Emtech (truck trailer)
|-
| SU9/BU1 || BODEX (truck trailer)
|-
| SU9/DE2 || Demarco (truck trailer)
|-
| SU9/EB1 || Elbo (truck trailer)
|-
| SU9/EZ1 || Enerco (truck trailer)
|-
| SU9/NC5 || Zasta (truck trailer)
|-
| SU9/NJ1 || Janmil (truck trailer)
|-
| SU9/PL1 || Plandex (truck trailer)
|-
| SU9/PN1 || Solaris Bus & Coach (Poland) - until 2004
|-
| SU9/RE1 || Redos (truck trailer)
|-
| SU9/RE2 || Gromex (trailer)
|-
| SU9/TR1 || Plavec (truck trailer)
|-
| SU9/YV1 || Pilea bus/ARP E-Vehicles (Poland)
|-
| SU9/ZC1 || Wolf (truck trailer)
|-
| SVH || ZASŁAW (truck trailer)
|-
| SVM || Inter Cars (truck trailer)
|-
| SVS || BODEX (truck trailer)
|-
| SV9/BC2 || BC-LDS (truck trailer)
|-
| SV9/DR1 || Dromech (truck trailer)
|-
| SV9/RN1 || Prod-Rent (truck trailer)
|-
| SWH || Temared (trailers)
|-
| SWR || Weekend Trailers (trailers)
|-
| SWV || TA-NO (Poland)
|-
| SWZ || Zremb (trailers)
|-
| SW9/BA1 || Solbus
|-
| SW9/WG3 || Grew / Opalenica (trailer)
|-
| SXE || Neptun Trailers
|-
| SXK || Konar (truck trailer)
|-
| SXM || MELEX Sp. z o.o.
|-
| SXY || Wecon (truck trailer)
|-
| SXX || Martz (trailer)
|-
| SX7 || Arthur Bus
|-
| SX9/GR0 || GRAS (truck trailer)
|-
| SX9/KT1 || AMZ - Kutno (bus)
|-
| SX9/PN1 || Polkon (truck trailer)
|-
| SX9/SP1 || SOMMER Polska (truck trailer)
|-
| SYB || Rydwan (trailer)
|-
| SYG || Gniotpol, GT Trailers Sp. z o. o. (truck trailer)
|-
| SY1 || Neso Bus (PAK-PCE Polski Autobus Wodorowy)
|-
| SY9/FR1 || Feber (truck trailer)
|-
| SY9/PF1 || KEMPF (truck trailer)
|-
| SZA || Scania Poland
|-
| SZC || Vectrix (motorcycle)
|-
| SZL || Boro Trailers
|-
| SZN || Przyczepy Głowacz (trailer)
|-
| SZR || Niewiadów (trailer)
|-
| SZ9/AE6 || Gewe (trailer)
|-
| SZ9/BG1 || GALA Syriusz (trailer)
|-
| SZ9/PW1 || PRO-WAM (truck trailer)
|-
| SZ9/TU1 || Ovibos (truck trailer)
|-
| S19/AM0 || AMO Plant (bus) (Latvia)
|-
| S19/EF1 || Electrify (minibus) (Latvia)
|-
| S19/MT0 || Mono-Transserviss (truck trailer) (Latvia)
|-
| TAW || NAW Nutzfahrzeuggesellschaft Arbon & Wetzikon AG (Switzerland)
|-
| TBS || Boschung AG (Switzerland)
|-
| TCC || Micro Compact Car AG (smart 1998-1999) (Switzerland)
|-
| TDM || QUANTYA Swiss Electric Movement (Switzerland)
|-
| TEB || Bucher Municipal AG (includes Johnston Sweepers) (Switzerland)
|-
| TEM || Twike (SwissLEM AG) (Switzerland)
|-
| TFH || FHS Frech-Hoch AG (truck trailer) (Switzerland)
|-
| TH9/512 || Hess AG (bus, trolleybus) (Switzerland)
|-
| TJ5 || Vezeko (trailer) (Czech Republic)
|-
| TKP || Panav a.s. (truck trailer) (Czech Republic)
|-
| TKX || Agados s.r.o. (trailer) (Czech Republic)
|-
| TKY || Metaco (truck trailer) (Czech Republic)
|-
| TK9/AH3 || Atmos Chrást s.r.o. (Czech Republic)
|-
| TK9/AP3 || Agados, spol. s.r.o. (trailer) (Czech Republic)
|-
| TK9/HP1 || Hipocar (truck trailer) (Czech Republic)
|-
| TK9/PP7 || Paragan Trucks (truck trailer) (Czech Republic)
|-
| TK9/SL5 || SOR Libchavy buses (Czech Republic)
|-
| TK9/SS5 || SVAN Chrudim (truck trailer) (Czech Republic)
|-
| TLJ || Jawa Moto (Czech Republic)
|-
| TMA || [[../Hyundai/VIN Codes|Hyundai]] Motor Manufacturing Czech
|-
| TMB || Škoda Auto|Škoda (Czech Republic)
|-
| TMC || [[../Hyundai/VIN Codes|Hyundai]] Motor Manufacturing Czech (SUV)
|-
| TMK || Karosa (Czech Republic)
|-
| TMP || Škoda trolleybuses (Czech Republic)
|-
| TMT || Tatra passenger car (Czech Republic)
|-
| TM9/CA2 || Oasa bus (Oprava a stavba automobilů) (Czech Republic)
|-
| TM9/SE3 || Škoda Transportation trolleybuses (Czech Republic)
|-
| TM9/SE4 || Škoda Transportation trolleybuses (Czech Republic)
|-
| TM9/TE6 || TEDOM bus (Czech Republic)
|-
| TNA || Avia/Daewoo Avia
|-
| TNE || TAZ
|-
| TNG || LIAZ (Liberecké Automobilové Závody)
|-
| TNT || Tatra trucks
|-
| TNU || Tatra trucks
|-
| TN9/EE7 || Ekova (bus) (Czech Republic)
|-
| TN9/VP5 || VPS (truck trailer)
|-
| TRA || Ikarus Bus
|-
| TRC || Csepel bus
|-
| TRE || Rákos bus
|-
| TRK || Credo bus/Kravtex (Hungary)
|-
| TRR || Rába Bus (Hungary)
|-
| TRU || Audi Hungary (TT/TTS, '12-'13 TT RS)
|-
| TSB || Ikarus Bus
|-
| TSC || VIN assigned by the National Transport Authority of Hungary
|-
| TSE || Ikarus Egyedi Autobuszgyar (EAG) (Hungary)
|-
| TSF || Alfabusz (Hungary)
|-
| TSM || Suzuki Hungary (Magyar Suzuki),<br> Fiat Sedici made by Suzuki, Subaru Justy G3X made by Suzuki, Suzuki Swace made by Toyota UK (TMUK)
|-
| TSY || Keeway Motorcycles (Hungary)
|-
| TS9/111 || NABI Autóbuszipari (bus) (Hungary)
|-
| TS9/130 || Enterprise Bus (Hungary)
|-
| TS9/131 || MJT bus (Hungary)
|-
| TS9/156 || Ikarus / ARC (Auto Rad Controlle Kft.) bus (Hungary)
|-
| TS9/167 || Hungarian Bus Kft. (Hungary)
|-
| TS9/170 || Csaba Metál bus (Hungary)
|-
| TT9/117 || Ikarus Egyedi Autobusz Gyarto Kft. / Magyar Autóbuszgyártó Kft. / MABI (Hungary)
|-
| TT9/123 || Ikarus Global Zrt. (Hungary)
|-
| TWG || CaetanoBus (Portugal)
|-
| TW0 || CaetanoBus (Portugal)
|-
| TW1 || Toyota Caetano Portugal, S.A. (Toyota Coaster, Dyna, Optimo, Land Cruiser 70 Series)
|-
| TW2 || [[../Ford/VIN Codes|Ford]] Lusitana (Portugal)
|-
| TW4 || UMM (Portugal)
|-
| TW6 || Citroën (Portugal)
|-
| TW7 || Mini Moke made by British Leyland & Austin Rover Portugal
|-
| TX5 || Mini Moke made by Cagiva (Moke Automobili)
|-
| TX9/046 || Riotrailer (truck trailer) (Portugal)
|-
| TYA || Mitsubishi Fuso Truck and Bus Corp. Portugal (right-hand drive)
|-
| TYB || Mitsubishi Fuso Truck and Bus Corp. Portugal (left-hand drive)
|-
| T3C || Lohr Backa Topola (truck trailer) (Serbia)
|-
| T49/BG7 || FAP (Serbia)
|-
| T49/BH8 || Megabus (bus) (Serbia)
|-
| T49/BM2 || Feniksbus (minibus) (Serbia)
|-
| T49/V16 || MAZ made by BIK (bus) (Serbia)
|-
| T7A || Ebusco (Netherlands)
|-
| UA1 || AUSA Center (Spain)
|-
| UA4 || Irizar e-mobility (Spain)
|-
| UCY || Silence Urban Ecomobility (Spain)
|-
| UD3 || Granalu truck trailers (Belgium)
|-
| UHE || Scanvogn (trailer) (Denmark)
|-
| UHL || Camp-let (recreational vehicle) (Denmark)
|-
| UH2 || Brenderup (trailer) (Denmark)
|-
| UH2 || De Forenede Trailerfabrikke (trailer) (Denmark)
|-
| UH9/DA3 || DAB - Danish Automobile Building (acquired by Scania) (Denmark)
|-
| UH9/FK1 || Dapa Trailer (truck trailer) (Denmark)
|-
| UH9/HF1 || HFR Trailer A/S (truck trailer) (Denmark)
|-
| UH9/HM1 || HMK Bilcon A/S (truck trailer) (Denmark)
|-
| UH9/NS1 || Nopa (truck trailer) (Denmark)
|-
| UH9/NT1 || Nordic Trailer (truck trailer) (Denmark)
|-
| UH9/VM2 || VM Tarm a/s (truck trailer) (Denmark)
|-
| UJG || Garia ApS - Club Car (Denmark)
|-
| UKR || Hero Camper (Denmark)
|-
| UMT || MTDK a/s (truck trailer) (Denmark)
|-
| UN1 || [[../Ford/VIN Codes|Ford]] Ireland
|-
| UN9/089 || Brian Noone Ltd. bus (Ireland)
|-
| UU1 || Dacia (Romania)
|-
| UU2 || Oltcit
|-
| UU3 || ARO
|-
| UU4 || Roman/Grivbuz
|-
| UU5 || Rocar
|-
| UU6 || Daewoo Romania
|-
| UU7 || Euro Bus Diamond
|-
| UU9 || Astra Bus
|-
| UVW || UMM (truck trailer)
|-
| UV9/AT1 || ATP Trucks, ATP Bus
|-
| UWR || Robus Reșița
|-
| UZT || UTB (Uzina de Tractoare Brașov)
|-
| U1A || Sanos (North Macedonia)
|-
| U1V || VDL Van Hool Macedonia (North Macedonia)
|-
| U5Y || Kia Motors Slovakia
|-
| U59/AS0 || ASKO (truck trailer)
|-
| U6A || Granus (bus) (Slovakia)
|-
| U6Y || Kia Motors Slovakia
|-
| U69/NL1 || Novoplan (bus) (Slovakia)
|-
| U69/SB1 || SlovBus (bus)
|-
| U69/TR8 || Troliga Bus (Slovakia)
|-
| VAG || Steyr-Daimler-Puch Puch G & Steyr-Puch Pinzgauer
|-
| VAH || Hangler (truck trailer)
|-
| VAK || Kässbohrer Transport Technik
|-
| VAN || MAN Austria/Steyr-Daimler-Puch Steyr Trucks
|-
| VAV || Schwarzmüller
|-
| VAX || Schwingenschlogel (truck trailer)
|-
| VA0 || ÖAF, Gräf & Stift
|-
| VA4 || KSR Group (motorcycle)
|-
| VA9/GS0 || Gsodam Fahrzeugbau (truck trailer)
|-
| VA9/RB1 || Rosenbauer International AG (truck)
|-
| VA9/ZT0 || Berger Fahrzeugtechnik (truck trailer)
|-
| VBF || Fit-Zel (trailer)
|-
| VBK || KTM
|-
| VBK || Husqvarna Motorcycles & Gas Gas under KTM ownership
|-
| VCF || Fisker Inc. (Fisker Ocean) made by Magna Steyr
|-
| VFA || Alpine (A310, A610, A110, A390), Renault Alpine GTA
|-
| VFG || Caravelair (caravans)
|-
| VFK || Fruehauf (truck trailers)
|-
| VFN || Trailor, General Trailers (truck trailers)
|-
| VF1 || Renault, Renault GTA '87-'90 (UK market Alpine GTA), Mobilize Duo, Eagle Medallion made by Renault,<br> Opel/Vauxhall Arena made by Renault, Mitsubishi ASX, Colt, & Grandis made by Renault
|-
| VF2 || Renault Trucks
|-
| VF3 || Peugeot
|-
| VF4 || Talbot
|-
| VF5 || Iveco Unic
|-
| VF6 || Renault Trucks including vans made by Renault S.A. & Maxity truck made by Nissan Motor Ibérica S.A.
|-
| VF7 || Citroën
|-
| VF8 || Matra Automobiles (Talbot-Matra Murena, Rancho made by Matra, Renault Espace I/II/III, Avantime made by Matra)
|-
| VF9/024 || Legras Industries (truck trailer)
|-
| VF9/045 || Nardeau SAS (truck trailer)
|-
| VF9/049 || G. Magyar (truck trailer)
|-
| VF9/063 || Maisonneuve (truck trailer)
|-
| VF9/132 || Jean CHEREAU S.A.S. (truck trailer)
|-
| VF9/300 || EvoBus France
|-
| VF9/435 || Merceron (truck trailer)
|-
| VF9/519 || Hommell
|-
| VF9/607 || Mathieu (sweeper)
|-
| VF9/673 || Venturi Automobiles
|-
| VF9/795 || [[../Bugatti/VIN Codes|Bugatti Automobiles S.A.S.]]
|-
| VF9/848 || G. Magyar (truck trailer)
|-
| VF9/880 || Bolloré Bluebus
|-
| VF9/938 || SAFRA (bus)
|-
| VGA || Peugeot Motocycles
|-
| VGT || ASCA (truck trailers)
|-
| VGU || Trouillet (truck trailers)
|-
| VGW || BSLT (truck trailers)
|-
| VGX || Coder (truck trailers)
|-
| VGY || Lohr (truck trailers)
|-
| VG5 || MBK (motorcycles) & Yamaha Motor
|-
| VG6 || Renault Trucks & Mack Trucks medium duty trucks made by Renault Trucks
|-
| VG7 || Renault Trucks
|-
| VG8 || Renault Trucks
|-
| VG9/019 || Naya (autonomous vehicle)
|-
| VG9/061 || Alstom-NTL Aptis (bus)
|-
| VHR || Robuste (truck trailer)
|-
| VHX || Manitowoc Cranes - Potain
|-
| VH1 || Benalu SAS (truck trailer)
|-
| VH8 || Microcar
|-
| VJR || Ligier
|-
| VJY || Gruau
|-
| VJ1 || Heuliez Bus
|-
| VJ2 || Mia Electric
|-
| VJ4 || Gruau
|-
| VKD || Cheval Liberté (horse trailer)
|-
| VK1 || SEG (truck trailer)
|-
| VK2 || Grandin Automobiles
|-
| VK8 || Venturi Automobiles
|-
| VLG || Aixam-Mega
|-
| VLU || Scania France
|-
| VL4 || Bluecar, Citroen E-Mehari
|-
| VMK || Renault Sport Spider
|-
| VMS || Automobiles Chatenet
|-
| VMT || SECMA
|-
| VMW || Gépébus Oréos 55
|-
| VM3 || Lamberet (trailer)
|-
| VM3 || Chereau (truck trailer)
|-
| VN1 || Renault SOVAB (France), Opel/Vauxhall Movano A made at SOVAB
|-
| VN4 || Voxan
|-
| VNB || Sherco Motorcycles SARL
|-
| VNE || Iveco Bus/Irisbus (France)
|-
| VNK || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing France & '11-'13 Daihatsu Charade (XP90) made by TMMF
|-
| VNV || Nissan made in France by Renault
|-
| VRW || Goupil
|-
| VR1 || DS Automobiles
|-
| VR3 || Peugeot (under Stellantis)
|-
| VR7 || Citroën (under Stellantis)
|-
| VPL || Nosmoke S.A.S
|-
| VP3 || G. Magyar (truck trailers)
|-
| VXE || Opel Automobile Gmbh/Vauxhall van
|-
| VXF || Fiat van (Fiat Scudo, Ulysse '22-)
|-
| VXK || Opel Automobile Gmbh/Vauxhall car/SUV
|-
| VYC || Lancia Ypsilon (4th gen.)
|-
| VYE || Jeep Compass (3rd gen. - EU market '26-)
|-
| VYF || Fiat Doblo '23- & Fiat Topolino '23- & Fiat Grande Panda '25-
|-
| VYJ || Ram 1200 '25- (sold in Mexico)
|-
| VYS || Renault & Alpine made by Ampere (Renault 5 E-Tech, Renault 4 E-Tech, Alpine A290)
|-
| VZ2 || Avtomontaža (bus) (Slovenia)
|-
| UA2 || Iveco Massif & Campagnola made by Santana Motors in Spain
|-
| VSA || Mercedes-Benz Spain
|-
| VSC || Talbot
|-
| VSE || Santana Motors (Land Rover Series-based models) & Suzuki SJ/Samurai, Jimny, & Vitara made by Santana Motors in Spain
|-
| VSF || Santana Motors (Anibal/PS-10, 300/350)
|-
| VSK || Nissan Motor Iberica SA, Nissan passenger car/MPV/van/SUV/pickup & Ford Maverick 1993–1999
|-
| VSR || Leciñena (truck trailers)
|-
| VSS || SEAT/Cupra
|-
| VSX || Opel Spain
|-
| VSY || Renault V.I. Spain (bus)
|-
| VS1 || Pegaso
|-
| VS5 || Renault Spain
|-
| VS6 || [[../Ford/VIN Codes|Ford]] Spain
|-
| VS7 || Citroën Spain
|-
| VS8 || Peugeot Spain
|-
| VS9/001 || Setra Seida (Spain)
|-
| VS9/011 || Advanced Design Tramontana
|-
| VS9/013 || Mirofret (truck trailer) (Spain)
|-
| VS9/016 || Irizar bus (Spain)
|-
| VS9/019 || Cobos Hermanos (truck trailer) (Spain)
|-
| VS9/031 || Carrocerias Ayats (Spain)
|-
| VS9/032 || Parcisa (truck trailer) (Spain)
|-
| VS9/044 || Beulas bus (Spain) (Spain)
|-
| VS9/047 || Indox (truck trailers) (Spain)
|-
| VS9/052 || Montull (truck trailer) (Spain)
|-
| VS9/057 || SOR Ibérica (truck trailers) (Spain)
|-
| VS9/072 || Mecanicas Silva (truck trailer) (Spain)
|-
| VS9/098 || Sunsundegui bus (Spain)
|-
| VS9/172 || EvoBus Iberica
|-
| VS9/917 || Nogebus (Spain)
|-
| VTD || Montesa Honda (Honda Montesa motorcycle models)
|-
| VTH || Derbi (motorcycles)
|-
| VTL || Yamaha Spain (motorcycles)
|-
| VTM || Montesa Honda (Honda motorcycle models)
|-
| VTP || Rieju S.A. (motorcycles)
|-
| VTR || Gas Gas
|-
| VTT || Suzuki Spain (motorcycles)
|-
| VVC || SOR Ibérica (truck trailers)
|-
| VVG || Tisvol (truck trailers)
|-
| VV1 || Lecitrailer Group (truck trailers)
|-
| VV5 || Prim-Ball (truck trailers)
|-
| VV9/ || [[wikipedia:Tauro Sport Auto|TAURO]] Sport Auto Spain
|-
| VV9/010 || Castrosúa bus (Spain)
|-
| VV9/125 || Indetruck (truck trailers)
|-
| VV9/130 || Vectia Mobility bus (Spain)
|-
| VV9/130 || UNVI bus (Spain)
|-
| VV9/359|| Hispano-Suiza
|-
| VWA || Nissan Vehiculos Industriales SA, Nissan Commercial Vehicles
|-
| VWF || Guillén Group (truck trailers)
|-
| VWL || Indox (truck trailers)
|-
| VWV || Volkswagen Spain
|-
| VXY || Neobus a.d. (Serbia)
|-
| VX1 || [[w:Zastava Automobiles|Zastava Automobiles]] / [[w:Yugo|Yugo]] (Yugoslavia/Serbia)
|-
| V1Y || FAS Sanos bus (Yugoslavia/North Macedonia)
|-
| V2X || Ikarbus a.d. (Serbia)
|-
| V31 || Tvornica Autobusa Zagreb (TAZ) (Croatia)
|-
| V34 || Crobus bus (Croatia)
|-
| V39/AB8 || Rimac Automobili (Croatia)
|-
| V39/CB3 || Eurobus (Croatia)
|-
| V39/WB4 || Rasco (machinery) (Croatia)
|-
| V6A || Bestnet AS; Tiki trailers (Estonia)
|-
| V6B || Brentex-Trailer (Estonia)
|-
| V6T || Verge Motorcycles (Estonia)
|-
| V61 || Respo Trailers (Estonia)
|-
| WAC || Arge Audi Porsche (Audi/Porsche RS2 Avant)
|-
| WAF || Ackermann (truck trailer)
|-
| WAG || Neoplan
|-
| WAP || Alpina
|-
| WAU || Audi car
|-
| WA1 || Audi SUV
|-
| WBA || BMW car
|-
| WBC || Boom Trikes
|-
| WBJ || Bitter Cars
|-
| WBK || Böcker Maschinenwerke GmbH
|-
| WBL || Blumhardt (truck trailers)
|-
| WBS || BMW M car
|-
| WBU || Bürstner (caravans)
|-
| WBX || BMW SUV
|-
| WBY || BMW i car
|-
| WB0 || Böckmann Fahrzeugwerke GmbH (trailers)
|-
| WB1 || BMW Motorrad
|-
| WB2 || Blyss (trailer)
|-
| WB3 || BMW Motorrad Motorcycles made in India by TVS
|-
| WB4 || BMW Motorrad Motorscooters made in China by Loncin
|-
| WB5 || BMW i SUV
|-
| WCD || Freightliner Sprinter "bus" (van with more than 3 rows of seats) 2008–2019
|-
| WCM || Wilcox (truck trailer)
|-
| WDA || Mercedes-Benz incomplete vehicle (North America)
|-
| WDB || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] & Maybach
|-
| WDC || Mercedes-Benz SUV
|-
| WDD || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] car
|-
| WDF || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] van/pickup (French & Spanish built models – Citan & Vito & X-Class)
|-
| WDP || Freightliner Sprinter incomplete vehicle 2005–2019
|-
| WDR || Freightliner Sprinter MPV (van with 2 or 3 rows of seats) 2005–2019
|-
| WDT || Dethleffs (caravans)
|-
| WDW || Dodge Sprinter "bus" (van with more than 3 rows of seats) 2008–2009
|-
| WDX || Dodge Sprinter incomplete vehicle 2005–2009
|-
| WDY || Freightliner Sprinter truck (cargo van with 1 row of seats) 2005–2019
|-
| WDZ || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America)
|-
| WD0 || Dodge Sprinter truck (cargo van with 1 row of seats) 2005–2009
|-
| WD1 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 incomplete vehicle
|-
| WD2 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 truck (cargo van with 1 row of seats)
|-
| WD3 || Mercedes-Benz truck (cargo van with 1 row of seats) (North America)
|-
| WD4 || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America)
|-
| WD5 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 MPV (van with 2 or 3 rows of seats)
|-
| WD6 || Freightliner Unimog truck
|-
| WD7 || Freightliner Unimog incomplete vehicle
|-
| WD8 || Dodge Sprinter MPV (van with 2 or 3 rows of seats) 2005–2009
|-
| WEB || Evobus GmbH (Mercedes-Benz buses)
|-
| WEG || Ablinger (trailer)
|-
| WEL || e.GO Mobile AG
|-
| WFB || Feldbinder Spezialfahrzeugwerke GmbH
|-
| WFC || Fendt (caravans)
|-
| WFD || Fliegl Trailer
|-
| WFN || Tadano Faun GmbH
|-
| WF0 || [[../Ford/VIN Codes|Ford]] Germany
|-
| WF1 || Merkur
|-
| WGB || Göppel Bus GmbH
|-
| WG0 || Goldhofer AG (truck trailer)
|-
| WHB || Hobby (recreational vehicles)
|-
| WHD || Humbaur GmbH (truck trailer)
|-
| WHL || Hulco (trailer)
|-
| WHW || Hako GmbH
|-
| WHY || Hymer (recreational vehicles)
|-
| WH7 || Hüfferman (truck trailer)
|-
| WJM || Iveco/Iveco Magirus
|-
| WJR || Irmscher
|-
| WKE || Krone (truck trailers)
|-
| WKK || Setra (Evobus GmbH; formerly Kässbohrer)
|-
| WKN || Knaus, Weinsberg (caravans)
|-
| WKV || Kässbohrer Fahrzeugwerke Gmbh (truck trailers)
|-
| WK0 || Kögel (truck trailers)
|-
| WLA || Langendorf semi-trailers
|-
| WLF || Liebherr (mobile crane)
|-
| WMA || MAN Truck & Bus
|-
| WME || smart (from 5/99)
|-
| WMG || Demag Cranes
|-
| WMM || Karl Müller GmbH & Co. KG (truck trailers)
|-
| WMP || M & V GmbH (truck trailers)
|-
| WMU || Hako GmbH (Multicar)
|-
| WMW || MINI car
|-
| WMX || Mercedes-AMG used for Mercedes-Benz SLS AMG & Mercedes-AMG GT & Mercedes-AMG One (not used in North America)
|-
| WMZ || MINI SUV
|-
| WNA || Next.e.GO Mobile SE
|-
| WP0 || Porsche car
|-
| WP1 || Porsche SUV
|-
| WRA || Renders (truck trailers)
|-
| WRJ || Riese & Müller (bicycle)
|-
| WSE || STEMA Metalleichtbau GmbH (trailers)
|-
| WSJ || STERK Trailers (truck trailers)
|-
| WSK || Schmitz-Cargobull Gotha (truck trailers)
|-
| WSM || Schmitz-Cargobull (truck trailers)
|-
| WSP || Spitzer (truck trailers)
|-
| WSV || Aebi Schmidt Group
|-
| WS5 || StreetScooter
|-
| WS7 || Sono Motors
|-
| WTA || Tabbert (caravans)
|-
| WUA || Audi Sport GmbH (formerly quattro GmbH) car <br> (includes '04-'09 S4 Cabriolet & '06 S4 25quattro Special Edition sedan & '16-'18 S8 Plus & non-North American mkt. Q7 V12 TDI)
|-
| WU1 || Audi Sport GmbH (formerly quattro GmbH) SUV
|-
| WVG || Volkswagen SUV & Touran & N. American mkt. ID Buzz '25
|-
| WVM || Arbeitsgemeinschaft VW-MAN
|-
| WVP || Viseon Bus
|-
| WVW || Volkswagen passenger car, Sharan, Golf Plus, Golf Sportsvan
|-
| WV1 || Volkswagen Commercial Vehicles (cargo van or 1st gen. Amarok)
|-
| WV2 || Volkswagen Commercial Vehicles (passenger van or minibus)
|-
| WV3 || Volkswagen Commercial Vehicles (incomplete vehicle: chassis cab/cutaway)<br> [includes Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
|-
| WV4 || Volkswagen Commercial Vehicles (2nd gen. Amarok & T7 Transporter made by Ford)
|-
| WV5 || Volkswagen Commercial Vehicles (T7 Caravelle made by Ford)
|-
| WWA || Wachenhut (truck trailer)
|-
| WWC || WM Meyer (truck trailer)
|-
| WZ1 || Toyota Supra (Fifth generation for North America)
|-
| W0D || Obermaier (truck trailer)
|-
| W0L || Adam Opel AG/Vauxhall & Holden
|-
| W0L || Holden Zafira & Subaru Traviq made by GM Thailand
|-
| W0V || Opel Automobile Gmbh/Vauxhall & Holden (since 2017)
|-
| W04 || Buick Regal & Buick Cascada
|-
| W06 || Cadillac Catera
|-
| W08 || Saturn Astra
|-
| W09/A55 || Artega Automobile
|-
| W09/A71 || Apollo
|-
| W09/B09 || Bitter Cars
|-
| W09/B16 || Brabus
|-
| W09/B48 || Bultmann (trailer)
|-
| W09/B91 || Boerner (truck trailer)
|-
| W09/C09 || Carnehl Fahrzeugbau (truck trailer)
|-
| W09/D04 || DOLL (truck trailer)
|-
| W09/D05 || Drögmöller (bus)
|-
| W09/D17 || Dinkel (truck trailer)
|-
| W09/E04 || Eder (trailer)
|-
| W09/E27 || Esterer (truck trailer)
|-
| W09/E32 || ES-GE (truck trailer)
|-
| W09/E45 || Eurotank (truck trailer)
|-
| W09/F46 || FSN Fahrzeugbau (truck trailer)
|-
| W09/F57 || Twike
|-
| W09/G10 || GOFA (truck trailer)
|-
| W09/G64 || Gumpert
|-
| W09/H10 || Heitling Fahrzeugbau
|-
| W09/H21|| Dietrich Hisle GmbH (truck trailer)
|-
| W09/H46 || Hendricks (truck trailer)
|-
| W09/H49 || H&W Nutzfahrzeugtechnik GmbH (truck trailer)
|-
| W09/J02 || Isdera
|-
| W09/K27 || Krupp
|-
| W09/K27 || Kotschenreuther (truck trailer)
|-
| W09/L05 || Liebherr
|-
| W09/L06 || LMC Caravan (recreational vehicles)
|-
| W09/M08 || MEILLER Kipper (truck trailer)
|-
| W09/M09 || Meierling (truck trailer)
|-
| W09/M29 || MAFA (truck trailer)
|-
| W09/M40 || Franz Mersch (trailer)
|-
| W09/M79 || MKF Matallbau (truck trailer)
|-
| W09/N22 || NFP-Eurotrailer (truck trailer)
|-
| W09/P13 || Pagenkopf (truck trailer)
|-
| W09/P72 || De Tomaso Automobili (Capricorn)
|-
| W09/R06 || RUF
|-
| W09/R14 || Rancke (truck trailer)
|-
| W09/R27 || Gebr. Recker Fahrzeugbau (truck trailer)
|-
| W09/R30 || Reisch (truck trailer)
|-
| W09/R38 || Rewaco
|-
| W09/SG0 || Sileo (bus)
|-
| W09/SG1 || SEKA (truck trailer)
|-
| W09/S24 || Sommer (truck trailer)
|-
| W09/S25 || Spermann (truck trailer)
|-
| W09/S27 || Schröder (truck trailer)
|-
| W09/W11 || Wilken (truck trailer)
|-
| W09/W14 || Weka (truck trailer)
|-
| W09/W16 || Wellmeyer (truck trailer)
|-
| W09/W20 || Kurt Willig GmbH & Co. KG (truck trailer)
|-
| W09/W29 || Wiese (truck trailer)
|-
| W09/W35 || Wecon GmbH (truck trailer)
|-
| W09/W46 || WT-Metall (trailer)
|-
| W09/W59 || Wiesmann
|-
| W09/W70 || Wüllhorst (truck trailer)
|-
| W09/W86 || Web Trailer GmbH (truck trailer)
|-
| W09/004 || ORTEN Fahrzeugbau (truck trailer)
|-
| W1A || smart
|-
| W1H || Freightliner Econic
|-
| W1K || Mercedes-Benz car
|-
| W1N || Mercedes-Benz SUV
|-
| W1T || Mercedes-Benz truck
|-
| W1V || Mercedes-Benz van
|-
| W1W || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America)
|-
| W1X || Mercedes-Benz incomplete vehicle (North America)
|-
| W1Y || Mercedes-Benz truck (cargo van with 1 row of seats) (North America)
|-
| W1Z || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America)
|-
| W2W || Freightliner Sprinter MPV (van with 2 or 3 rows of seats)
|-
| W2X || Freightliner Sprinter incomplete vehicle
|-
| W2Y || Freightliner Sprinter truck (cargo van with 1 row of seats)
|-
| W2Z || Freightliner Sprinter "bus" (van with more than 3 rows of seats)
|-
| XDN || Mercedes Sprinter Classic made by GAZ (Russia)
|-
| XD2 || CTTM Cargoline (truck trailer) (Russia)
|-
| XEA || AmberAvto (Avtotor) (Russia)
|-
| XE2 || AMKAR Automaster (truck trailer) (Russia)
|-
| XF9/B24 || NK Trailers (truck trailer) (Greece)
|-
| XF9/D44 || Militsis (trailer) (Greece)
|-
| XF9/J03 || Christos Nezis (truck trailer) (Greece)
|-
| XF9/J63 || Kaoussis (truck trailer) (Greece)
|-
| XG3 || Petros Petropoulos Group - Ecoshift NOOS electric motorscooters (Greece)
|-
| XG4|| Mpitis (trailer) (Greece)
|-
| XG5 || Stavropoulos trailers (Greece)
|-
| XG6 || MGK Hellenic Motor motorcycles (Greece)
|-
| XG8 || Gorgolis SA motorcycles (Greece)
|-
| XG9/B01 || Sfakianakis bus Greece
|-
| XG9/H33 || Rappas Trailer (Greece)
|-
| XG9/H51 || Eurotrailer Tourlakopoulos (trailer) (Greece)
|-
| XG9/H92 || Diamantis N. & Co. (trailer) (Greece)
|-
| XΗ9/B21 || Hellenic Vehicle Industry - ELVO bus Greece
|-
| XH9/H08 || Poseidonas Litsakis (trailer) (Greece)
|-
| XH9/H34 || Flexi-Wheels (trailer) (Greece)
|-
| XJY || Bonum (truck trailer) (Russia)
|-
| XJ4 || PKTS (PK Transportnye Sistemy) bus (Russia)
|-
| XKM || Volgabus (Russia)
|-
| XLA || DAF Bus International
|-
| XLB || Volvo Car B.V./NedCar B.V. (Volvo Cars)
|-
| XLC || [[../Ford/VIN Codes|Ford]] Netherlands
|-
| XLD || Pacton Trailers B.V.
|-
| XLE || Scania Netherlands
|-
| XLH || Hapert (trailer)
|-
| XLJ || Anssems (trailer)
|-
| XLK || Burg Trailer Service BV (truck trailer)
|-
| XLR || DAF Trucks & Leyland DAF
|-
| XLU || Henra (trailer)
|-
| XLV || DAF Bus
|-
| XLW || Terberg Benschop BV
|-
| XL3 || Ebusco
|-
| XL4 ||Lightyear
|-
| XL9/001 || ESVE BV (truck trailers)
|-
| XL9/002 || Jumbo Groenewegen (truck trailers)
|-
| XL9/003 || Autobusfabriek Bova BV
|-
| XL9/004 || G.S. Meppel (truck trailers)
|-
| XL9/007|| Broshuis BV (truck trailer)
|-
| XL9/010|| Ginaf Trucks
|-
| XL9/014 || Contar (truck trailer)
|-
| XL9/017 || Van Eck (truck trailer)
|-
| XL9/021 || Donkervoort Cars
|-
| XL9/033 || Wijer (trailer)
|-
| XL9/039 || Talson (truck trailer)
|-
| XL9/042 || Den Oudsten Bussen
|-
| XL9/052 || Witteveen (trailer)
|-
| XL9/055 || Fripaan (truck trailer)
|-
| XL9/067 || HTF (truck trailer)
|-
| XL9/068 || Vogelzang (truck trailer)
|-
| XL9/069 || Kraker (truck trailer)
|-
| XL9/070 || Veldhuizen (truck trailers)
|-
| XL9/073 || Zwalve (truck trailers)
|-
| XL9/074 || Draco (truck trailers)
|-
| XL9/081 || EBO van Weel (truck trailers)
|-
| XL9/084 || Vocol (truck trailers)
|-
| XL9/089 || Meijvo (trailers)
|-
| XL9/092 || Bulthuis (truck trailers)
|-
| XL9/103 || D-TEC (truck trailers)
|-
| XL9/109|| Groenewold Carrosseriefabriek B.V. (car transporter)
|-
| XL9/150 || Univan (truck trailer)
|-
| XL9/251 || Spierings Mobile Cranes
|-
| XL9/320 || VDL Bova bus
|-
| XL9/348 || HOKA (trailer)
|-
| XL9/355 || Berdex (truck trailer)
|-
| XL9/363 || Spyker
|-
| XL9/423 || Tijhof (trailer)
|-
| XL9/461 || BK Market Trailers (trailer)
|-
| XL9/495 || BE-Combi (truck trailer)
|-
| XL9/508 || Talson (truck trailer)
|-
| XL9/527 || GINAF
|-
| XL9/530 || Ebusco
|-
| XL9/611 || Zocon (trailer)
|-
| XMC || NedCar B.V. Mitsubishi Motors (LHD)
|-
| XMD || NedCar B.V. Mitsubishi Motors (RHD)
|-
| XMG || VDL Bus International
|-
| XMR || Nooteboom Trailers
|-
| XM4 || RAVO Holding B.V. (sweeper)
|-
| XNB || NedCar B.V. Mitsubishi Motors made by Pininfarina (Colt CZC convertible - RHD)
|-
| XNC || NedCar B.V. Mitsubishi Motors made by Pininfarina (Colt CZC convertible - LHD)
|-
| XNJ || Broshuis (truck trailer)
|-
| XNL || VDL Bus & Coach
|-
| XNT || Pacton Trailers B.V. (truck trailer)
|-
| XN1 || Kraker Trailers Axel B.V. (truck trailer)
|-
| XPN || Knapen Trailers
|-
| XPP || Atec Trailers
|-
| XP7 || Tesla Europe (based in the Netherlands) (Gigafactory Berlin-Brandenburg)
|-
| XRP || Proline (trailer)
|-
| XRY || D-TEC (truck trailer)
|-
| XR7 || Qarry
|-
| XTA || Lada / AvtoVAZ (Russia)
|-
| XTB || Moskvitch / AZLK (Russia)
|-
| XTC || KAMAZ (Russia)
|-
| XTD || LuAZ (Ukraine)
|-
| XTE || ZAZ (Ukraine)
|-
| XTF || GolAZ (Russia)
|-
| XTH || GAZ (Russia)
|-
| XTJ || Lada Oka made by SeAZ (Russia)
|-
| XTK || IzhAvto (Russia)
|-
| XTM || MAZ (Belarus); used until 1997
|-
| XTP || Ural (Russia)
|-
| XTS || ChMZAP (truck trailer)
|-
| XTT || UAZ / Sollers (Russia)
|-
| XTU || Trolza, previously ZiU (Russia)
|-
| XTW || LAZ (Ukraine)
|-
| XTY || LiAZ (Russia)
|-
| XTZ || ZiL (Russia)
|-
| XUF || General Motors Russia
|-
| XUS || Nizhegorodets (minibus) (Russia)
|-
| XUU || Avtotor (Russia, Chevrolet SKD, Kaiyi Auto)
|-
| XUV || Avtotor (DFSK, SWM)
|-
| XUZ || InterPipeVAN (truck trailer)
|-
| XU6 || Avtodom (minibus) (Russia)
|-
| XVG || MARZ (bus) (Russia)
|-
| XVU || Start (truck trailer)
|-
| XW7 || Toyota Motor Manufacturing Russia
|-
| XW8 || Volkswagen Group Russia
|-
| XWB || UZ-Daewoo/GM Uzbekistan/Ravon/UzAuto Motors (Uzbekistan)
|-
| XWB || Avtotor (Russia, BAIC SKD)
|-
| XWE || Avtotor (Russia, Hyundai-Kia SKD)
|-
| XWF || Avtotor (Russia, Chevrolet Tahoe/Opel/Cadillac/Hummer SKD)
|-
| XX3 || Ujet Manufacturing (Luxembourg)
|-
| XZB || SIMAZ (bus) (Russia)
|-
| XZE || Specpricep (truck trailer)
|-
| XZG || Great Wall Motor (Haval Motor Rus)
|-
| XZP || Gut Trailer (truck trailer)
|-
| XZT || FoxBus (minibus) (Russia)
|-
| X1D || RAF (Rīgas Autobusu Fabrika) (Latvia)
|-
| X1E || KAvZ (Russia)
|-
| X1F || NefAZ (Russia)
|-
| X1M || PAZ (Russia)
|-
| X1P || Ural (Russia)
|-
| X2L || Fox Trailer (truck trailer) (Russia)
|-
| X21 || Diesel-S (truck trailer) (Russia)
|-
| X4K || Volgabus (Volzhanin) (Russia)
|-
| X4T || Sommer (truck trailer) (Russia)
|-
| X4X || Avtotor (Russia, BMW SKD)
|-
| X5A || UralSpetzTrans (trailer) (Russia)
|-
| X6D || VIS-AVTO (Russia)
|-
| X6S || TZA (truck trailer) (Russia)
|-
| X7L || Renault AvtoFramos (1998-2014), Renault Russia (2014-2022), Moskvitch (2022-) (Russia)
|-
| X7M || [[../Hyundai/VIN Codes|Hyundai]] & Vortex (rebadged Chery) made by TagAZ (Russia)
|-
| X89/AD4 || ВМЗ (VMZ) bus
|-
| X89/BF8 || Rosvan bus
|-
| X89/CU2 || EvoBus Russland (bus)
|-
| X89/DJ2 || VMK (bus)
|-
| X89/EY4 || Brabill (minibus)
|-
| X89/FF6 || Lotos (bus)
|-
| X89/FY1 || Sherp
|-
| X8J || IMZ-Ural Ural Motorcycles
|-
| X8U || Scania Russia
|-
| X9F || Ford Motor Company ZAO
|-
| X9L || GM-AvtoVAZ
|-
| X9N || Samoltor (minibus)
|-
| X9P || Volvo Vostok ZAO (Volvo Trucks)
|-
| X9W || Brilliance, Lifan made by Derways
|-
| X9X || Great Wall Motors
|-
| X96 || GAZ
|-
| X99/000 || Marussia
|-
| X90 || GRAZ (truck trailer)
|-
| X0T || Tonar (truck trailer)
|-
| YAF || Faymonville (special transport trailers)
|-
| YAG || Syma aanhangwagenbouw BV (trailers)
|-
| YAM || MAX Trailer (truck trailers)
|-
| YAR || Toyota Motor Europe (based in Belgium) used for Toyota ProAce, Toyota ProAce City and Toyota ProAce Max made by PSA/Stellantis
|-
| YA2 || Atlas Copco Group
|-
| YA5 || Renders (truck trailers)
|-
| YA9/ || Lambrecht Constructie NV (truck trailers)
|-
| YA9/111 || OVA (truck trailer)
|-
| YA9/121 || Atcomex (truck trailer)
|-
| YA9/128 || EOS (bus)
|-
| YA9/139 || ATM Maaseik (truck trailer)
|-
| YA9/168 || Forthomme s.a. (truck trailer)
|-
| YA9/169 || Automobiles Gillet
|-
| YA9/180 || EOS (bus)
|-
| YA9/191 || Stokota (truck trailers)
|-
| YA9/195 || Denolf & Depla (minibus)
|-
| YBC || Toyota Supra (Fifth generation for Europe)
|-
| YBD || Addax Motors
|-
| YBW || Volkswagen Belgium
|-
| YB1 || Volvo Trucks Belgium (truck)
|-
| YB2 || Volvo Trucks Belgium (bus chassis)
|-
| YB3 || Volvo Trucks Belgium (incomplete vehicle)
|-
| YB4 || LAG Trailers N.V. (truck trailer)
|-
| YB6 || Jonckheere (VDL Belgium)
|-
| YCM || Mazda Motor Logistics Europe (based in Belgium) used for European-market Mazda 121 made by Ford in UK
|-
| YC1 || Honda Belgium NV (motorcycle)
|-
| YC3 || Eduard Trailers
|-
| YD3 || Chateau Caravans (Belgium)
|-
| YE1 || Van Hool (trailers) (Belgium)
|-
| YE2 || Van Hool (buses) (Belgium)
|-
| YE6 || STAS (truck trailer)
|-
| YE7 || Turbo's Hoet (truck trailer)
|-
| YF1 || Närko (truck trailer) (Finland)
|-
| YF3 || NTM (truck trailer) (Finland)
|-
| YF9/050 || JYKI (truck trailer) (Finland)
|-
| YGU || JJ-Trailer (trailer) (Finland)
|-
| YH1 || Solifer (caravans)
|-
| YH2 || BRP Finland (Lynx snowmobiles)
|-
| YH4 || Fisker Automotive (Fisker Karma) built by Valmet Automotive
|-
| YK1 || Saab-Valmet Finland
|-
| YK2, YK7 || Sisu Auto
|-
| YK9/003 || Kabus (bus)
|-
| YK9/008 || Lahden Autokori (-2013), SOE Busproduction Finland (2014-2024) (bus)
|-
| YK9/016 || Linkker (bus)
|-
| YSC || Cadillac BLS (made by Saab)
|-
| YSM || Polestar cars
|-
| YSP || Volta Trucks AB
|-
| YSR || Polestar SUV
|-
| YS2 || Scania commercial vehicles (Södertälje factory)
|-
| YS3 || Saab cars
|-
| YS4 || Scania buses and bus chassis until 2002 (Katrineholm factory)
|-
| YS5 || OmniNova (minibus)
|-
| YS7 || Solifer (recreational vehicles)
|-
| YS9/KV1 || Backaryd (minibus)
|-
| YTN || Saab made by NEVS
|-
| YT7 || Kabe (recreational vehicles)
|-
| YT9/007 || Koenigsegg
|-
| YT9/034 || Carvia
|-
| YU1 || Fogelsta, Brenderup Group (trailer)
|-
| YU7 || Husaberg (motorcycles)
|-
| YVV || WiMa 442 EV
|-
| YV1 || [[../Volvo/VIN Codes|Volvo]] cars
|-
| YV2 || [[../Volvo/VIN Codes|Volvo]] trucks
|-
| YV3 || [[../Volvo/VIN Codes|Volvo]] buses and bus chassis
|-
| YV4 || [[../Volvo/VIN Codes|Volvo]] SUV
|-
| YV5 || [[../Volvo/VIN Codes|Volvo Trucks]] incomplete vehicle
|-
| YYB || Tysse (trailer) (Norway)
|-
| YYC || Think Nordic (Norway)
|-
| YY9/017 || Skala Fabrikk (truck trailer) (Norway)
|-
| Y29/005 || Buddy Electric (Norway)
|-
| Y3D || MTM (truck trailer) (Belarus)
|-
| Y3F || Lida Buses Neman (Belarus)
|-
| Y3J || Belkommunmash (Belarus)
|-
| Y3K || Neman Bus (Belarus)
|-
| Y3M || MAZ (Belarus)
|-
| Y3W || VFV built by Unison (Belarus)
|-
| Y39/047 || Altant-M (minibus) (Belarus)
|-
| Y39/051 || Bus-Master (minibus) (Belarus)
|-
| Y39/052 || Aktriya (minibus) (Belarus)
|-
| Y39/072 || Klassikbus (minibus) (Belarus)
|-
| Y39/074 || Alterra (minibus) (Belarus)
|-
| Y39/135 || EuroDjet (minibus) (Belarus)
|-
| Y39/240 || Alizana (minibus) (Belarus)
|-
| Y39/241 || RSBUS (minibus) (Belarus)
|-
| Y39/323 || KF-AVTO (minibus) (Belarus)
|-
| Y4F || [[../Ford/VIN Codes|Ford]] Belarus
|-
| Y4K || Geely / BelGee (Belarus)
|-
| Y6B || Iveco (Ukraine)
|-
| Y6D || ZAZ / AvtoZAZ (Ukraine)
|-
| Y6E || LAZ (Ukraine)
|-
| Y6J || Bogdan group (Ukraine)
|-
| Y6L || Bogdan group including buses, Hyundai made by Bogdan (Ukraine)
|-
| Y6U || Škoda Auto made by Eurocar (Ukraine)
|-
| Y6W || PGFM (trailer) (Ukraine)
|-
| Y6Y || LEV (trailer) (Ukraine)
|-
| Y69/B19 || Stryi Avto (bus) (Ukraine)
|-
| Y69/B98 || VESTT (truck trailer) (Ukraine)
|-
| Y69/C49 || TAD (truck trailer) (Ukraine)
|-
| Y69/D75 || Barrel Dash (truck trailer) (Ukraine)
|-
| Y7A || KrAZ trucks (Ukraine)
|-
| Y7B || Bogdan group (Ukraine)
|-
| Y7C || Great Wall Motors, Geely made by KrASZ (Ukraine)
|-
| Y7D || GAZ made by KrymAvtoGAZ (Ukraine)
|-
| Y7F || Boryspil Bus Factory (BAZ) (Ukraine)
|-
| Y7S || Korida-Tech (trailer) (Ukraine)
|-
| Y7W || Geely made by KrASZ (Ukraine)
|-
| Y7X || ChRZ - Ruta (minibus) (Ukraine)
|-
| Y79/A23 || OdAZ (truck trailer) (Ukraine)
|-
| Y79/B21 || Everlast (truck trailer) (Ukraine)
|-
| Y79/B65 || Avtoban (trailer) (Ukraine)
|-
| Y8A || LAZ (Ukraine)
|-
| Y8H || UNV Leader (trailer) (Ukraine)
|-
| Y8S || Alekseevka Ximmash (truck trailer)
|-
| Y8X || GAZ Gazelle made by KrASZ (Ukraine)
|-
| Y89/A98 || VARZ (trailer) (Ukraine)
|-
| Y89/B75 || Knott (trailer) (Ukraine)
|-
| Y89/C65 || Electron (Ukraine)
|-
| Y9A || PAVAM (trailer) (Ukraine)
|-
| Y9H || LAZ (Ukraine)
|-
| Y9M || AMS (trailer) (Ukraine)
|-
| Y9T || Dnipro (trailer) (Ukraine)
|-
| Y9W || Pragmatec (trailer) (Ukraine)
|-
| Y9Z || Lada, Renault made in Ukraine
|-
| Y99/B32 || Santey (trailer) (Ukraine)
|-
| Y99/E21 || Zmiev-Trans (truck trailer) (Ukraine)
|-
| Y99/C79 || Electron (bus) (Ukraine)
|-
| ZAA || Autobianchi
|-
| ZAA || Alfa Romeo Junior 2024-
|-
| ZAC || Jeep, Dodge Hornet
|-
| ZAH || Rolfo SpA (car transporter)
|-
| ZAJ || Trigano SpA; Roller Team recreational vehicles
|-
| ZAM || [[../Maserati/VIN Codes|Maserati]]
|-
| ZAP || Piaggio/Vespa/Gilera
|-
| ZAR || Alfa Romeo car
|-
| ZAS || Alfa Romeo Alfasud & Sprint through 1989
|-
| ZAS || Alfa Romeo SUV 2018-
|-
| ZAX || Zorzi (truck trailer)
|-
| ZA4 || Omar (truck trailer)
|-
| ZA9/A12 || [[../Lamborghini/VIN Codes|Lamborghini]] through mid-2003 (including LM002)
|-
| ZA9/A17 || Carrozzeria Luigi Dalla Via (bus)
|-
| ZA9/A18 || De Simon (bus)
|-
| ZA9/A33 || Bucher Schörling Italia (sweeper)
|-
| ZA9/A47 || Silver Car (truck trailer)
|-
| ZA9/B09 || Mauri Bus System
|-
| ZA9/B34 || Mistrall Siloveicoli (truck trailer)
|-
| ZA9/B45 || Bolgan (truck trailer)
|-
| ZA9/B49 || OMSP Macola (truck trailer)
|-
| ZA9/B95 || Carrozzeria Autodromo Modena (bus)
|-
| ZA9/C38 || Dulevo (sweeper)
|-
| ZA9/D38 || Cizeta Automobili SRL
|-
| ZA9/D39 || [[../Bugatti/VIN Codes|Bugatti Automobili S.p.A]]
|-
| ZA9/D50 || Italdesign Giugiaro
|-
| ZA9/E15 || Tecnobus Industries S.r.l.
|-
| ZA9/E73 || Sitcar (bus)
|-
| ZA9/E88 || Cacciamali (bus)
|-
| ZA9/F16 || OMT (truck trailer)
|-
| ZA9/F21 || FGM (truck trailer)
|-
| ZA9/F48 || Rampini Carlo S.p.A. (bus)
|-
| ZA9/F76 || Pagani Automobili S.p.A.
|-
| ZA9/G97 || EPT Horus (bus)
|-
| ZA9/H02 || O.ME.P.S. (truck trailer)
|-
| ZA9/H44|| Green-technik by Green Produzione s.r.l. (machine trailer)
|-
| ZA9/J21 || VRV (truck trailer)
|-
| ZA9/J93 || Barbi (bus)
|-
| ZA9/K98 || Esagono Energia S.r.l.
|-
| ZA9/M09 || Italdesign Automobili Speciali
|-
| ZA9/M27 || Dallara Stradale
|-
| ZA9/M91 || Automobili Pininfarina
|-
| ZA9/180 || De Simon (bus)
|-
| ZA0 || Acerbi (truck trailer)
|-
| ZBA || Piacenza (truck trailer)
|-
| ZBB || Bertone
|-
| ZBD || InBus
|-
| ZBN || Benelli
|-
| ZBW || Rayton-Fissore Magnum
|-
| ZB3 || Cardi (truck trailer)
|-
| ZCB || E. Bartoletti SpA (truck trailer)
|-
| ZCF || Iveco / Irisbus (Italy)
|-
| ZCG || Cagiva SpA / MV Agusta
|-
| ZCG || Husqvarna Motorcycles Under MV Agusta ownership
|-
| ZCM || BredaMenarinibus / Menarinibus / IIA (Industria Italiana Autobus)
|-
| ZCN || Astra Veicoli Industriali S.p.A.
|-
| ZCV || Vibreti (truck trailer)
|-
| ZCZ || BredaBus
|-
| ZC1 || AnsaldoBreda S.p.A.
|-
| ZC2 || Chrysler TC by Maserati
|-
| ZDC || Honda Italia Industriale SpA
|-
| ZDF || [[../Ferrari/VIN Codes|Ferrari]] Dino
|-
| ZDJ || ACM Biagini
|-
| ZDM || Ducati Motor Holdings SpA
|-
| ZDT || De Tomaso Modena SpA
|-
| ZDY || Cacciamali
|-
| ZD0 || Yamaha Motor Italia SpA & Belgarda SpA
|-
| ZD3 || Beta Motor
|-
| ZD4 || Aprilia
|-
| ZD5 || Casalini
|-
| ZEB || Ellebi (trailer)
|-
| ZEH || Trigano SpA (former SEA Group); McLouis & Mobilvetta recreational vehicles
|-
| ZES || Bimota
|-
| ZEX || TM Racing (motorcycle)
|-
| ZE5 || Carmosino (truck trailer)
|-
| ZFA || Fiat
|-
| ZFB || Fiat MPV/SUV & Ram Promaster City
|-
| ZFC || Fiat truck (Fiat Ducato for Mexico, Ram 1200)
|-
| ZFE || KL Motorcycle
|-
| ZFF || [[../Ferrari/VIN Codes|Ferrari]]
|-
| ZFJ || Carrozzeria Pezzaioli (truck trailer)
|-
| ZFM || Fantic Motor
|-
| ZFR || Pininfarina
|-
| ZF4 || Qvale
|-
| ZGA || Iveco Bus
|-
| ZGP || Merker (truck trailer)
|-
| ZGU || Moto Guzzi
|-
| ZG2 || FAAM (commercial vehicle)
|-
| ZHU || Husqvarna Motorcycles Under Cagiva ownership
|-
| ZHW || [[../Lamborghini/VIN Codes|Lamborghini]] (Mid-2003 – )
|-
| ZHZ || Menci SpA (truck trailer)
|-
| ZH5 || FB Mondial (motorcycle)
|-
| ZJM || Malaguti
|-
| ZJN || Innocenti
|-
| ZJT || Italjet
|-
| ZKC || Ducati Energia Free Duck (electric quadricycle)
|-
| ZKH || Husqvarna Motorcycles Srl Under BMW ownership
|-
| ZLA || Lancia
|-
| ZLF || Tazzari GL SpA
|-
| ZLM || Moto Morini srl
|-
| ZLV || Laverda
|-
| ZNN || Energica
|-
| ZN0 || SWM Motorcycles S.r.l.
|-
| ZN3 || Iveco Defence
|-
| ZN6 || Maserati SUV
|-
| ZPB || [[../Lamborghini/VIN Codes|Lamborghini]] SUV
|-
| ZPY || DR Automobiles
|-
| ZP6 || XEV
|-
| ZP8 || Regis Motors
|-
| ZRG || Tazzari GL Imola SpA
|-
| ZR1 || Microlino
|-
| ZSG || [[../Ferrari/VIN Codes|Ferrari]] SUV
|-
| ZX1 || TAM (Tovarna Avtomobilov Maribor) bus (Slovenia)
|-
| ZX9/KU0 || K-Bus / Kutsenits (bus) (Slovenia)
|-
| ZX9/DUR || TAM bus (Slovenia)
|-
| ZX9/TV0 || TAM (Tovarna Vozil Maribor) bus (Slovenia)
|-
| ZY1 || Adria (recreational vehicles) (Slovenia)
|-
| ZY9/002 || Gorica (truck trailer) (Slovenia)
|-
| ZZ1 || Tomos motorcycle (Slovenia)
|-
| Z29/555 || Vozila FLuid (truck trailer) (Slovenia)
|-
| Z39/008 || Autogalantas (truck trailer) (Lithuania)
|-
| Z39/009 || Patikima Linija / Rimo (truck trailer) (Lithuania)
|-
| Z6F || Ford Sollers (Russia)
|-
| Z7C || Luidor (bus) (Russia)
|-
| Z7N || KAvZ (bus) (Russia)
|-
| Z7T || RoAZ (bus) (Russia)
|-
| Z7X || Isuzu Rus (Russia)
|-
| Z76 || SEMAZ (Kazakhstan)
|-
| Z8M || Marussia (Russia)
|-
| Z8N || Nissan Manufacturing Rus (Russia)
|-
| Z8T || PCMA Rus (Peugeot, Citroen, Mitsubishi) (Russia)
|-
| Z8Y || Nasteviya (bus) (Russia)
|-
| Z9B || KuzbassAvto (Hyundai bus) (Russia)
|-
| Z9M || Mercedes-Benz Trucks Vostok (Russia)
|-
| Z9N || Samotlor-NN (Iveco) (Russia)
|-
| Z94 || Hyundai Motor Manufacturing Rus (2008-2023), Solaris Auto - AGR Automotive (2023-) (Russia)
|-
| Z07 || Volgabus (Russia)
|-
| 1A4 1A8 || Chrysler brand MPV/SUV 2006–2009 only
|-
| 1A9/007 || Advance Mixer Inc.
|-
| 1A9/111 || Amerisport Inc. (federalized late model DeTomaso Pantera)
|-
| 1A9/398 || Ameritech (federalized McLaren F1 & Bugatti EB110)
|-
| 1A9/569 || American Custom Golf Cars Inc. (AGC)
|-
| 1AC || American Motors Corporation MPV
|-
| 1AF || American LaFrance truck
|-
| 1AJ || Ajax Manufacturing (truck trailer)
|-
| 1AM || American Motors Corporation car & Renault Alliance 1983 only
|-
| 1BN || Beall Trailers (truck trailer)
|-
| 1B3 || Dodge car 1981–2011
|-
| 1B4 || Dodge MPV/SUV 1981–2002
|-
| 1B6 || Dodge incomplete vehicle 1981–2002
|-
| 1B7 || Dodge truck 1981–2002
|-
| 1B9/133 || Buell Motorcycle Company through mid-1995
|-
| 1B9/274 || Brooks Brothers Trailers
|-
| 1B9/275 || Boydstun Metal Works (truck trailer)
|-
| 1B9/285 || Boss Hoss Cycles
|-
| 1B9/374 || Big Dog Custom Motorcycles
|-
| 1B9/975 || Motus Motorcycles
|-
| 1BA || Blue Bird Corporation bus
|-
| 1BB || Blue Bird Wanderlodge MPV
|-
| 1BD || Blue Bird Corporation incomplete vehicle
|-
| 1BL || Balko, Inc.
|-
| 1C3 || Chrysler brand car 1981–2011
|-
| 1C3 || Chrysler Group (all brands) car (including Lancia) 2012-
|-
| 1C4 || Chrysler brand MPV 1990–2005
|-
| 1C4 || Chrysler Group (all brands) MPV 2012–
|-
| 1C6 || Chrysler Group (all brands) truck 2012–
|-
| 1C8 || Chrysler brand MPV 2001–2005
|-
| 1C9/257 || CEI Equipment Company (truck trailer)
|-
| 1C9/291 || CX Automotive
|-
| 1C9/496 || Carlinville Truck Equipment (truck trailer)
|-
| 1C9/535 || Chance Coach (bus)
|-
| 1C9/772 || Cozad (truck trailer)
|-
| 1C9/971 || Cool Amphibious Manufacturers International
|-
| 1CM || Checker Motors Corporation
|-
| 1CU || Cushman Haulster (Cushman division of Outboard Marine Corporation)
|-
| 1CY || Crane Carrier Company
|-
| 1CY || Battle Motors, Inc.
|-
| 1D3 || Dodge truck 2002–2009
|-
| 1D4 || Dodge MPV/SUV 2003–2011 only
|-
| 1D7 || Dodge truck 2002–2011
|-
| 1D8 || Dodge MPV/SUV 2003–2009 only
|-
| 1D9/008 || KME Fire Apparatus
|-
| 1D9/791 || Dennis Eagle, Inc.
|-
| 1DW || Stoughton Trailers (truck trailer)
|-
| 1E9/007 || E.D. Etnyre & Co. (truck trailer)
|-
| 1E9/190 || Electric Transit Inc. (trolleybus)
|-
| 1E9/363 || E-SUV LLC (E-Ride Industries)
|-
| 1E9/456 || Electric Motorsport (GPR-S electric motorcycle)
|-
| 1E9/526 || Epic TORQ
|-
| 1E9/581 || Vetter Razor
|-
| 1EU || Eagle Coach Corporation (bus)
|-
| 1FA || [[../Ford/VIN Codes|Ford]] car
|-
| 1FB || [[../Ford/VIN Codes|Ford]] "bus" (van with more than 3 rows of seats)
|-
| 1FC || [[../Ford/VIN Codes|Ford]] stripped chassis made by Ford
|-
| 1FD || [[../Ford/VIN Codes|Ford]] incomplete vehicle
|-
| 1FM || [[../Ford/VIN Codes|Ford]] MPV/SUV
|-
| 1FT || [[../Ford/VIN Codes|Ford]] truck
|-
| 1FU || Freightliner (truck)
|-
| 1FV || Freightliner (incomplete vehicle)
|-
| 1F1 || Ford SUV - Limousine (through 2009)
|-
| 1F6 || Ford stripped chassis made by Detroit Chassis LLC
|-
| 1F9/037 || Federal Motors Inc.
|-
| 1F9/140 || Ferrara Fire Apparatus (incomplete vehicle)
|-
| 1F9/458 || Faraday Future prototypes
|-
| 1F9/FT1 || FWD Corp.
|-
| 1F9/ST1 || Seagrave Fire Apparatus
|-
| 1F9/ST2 || Seagrave Fire Apparatus
|-
| 1G || [[../GM/VIN Codes|General Motors]] USA
|-
| 1G0 || GMC "bus" (van with more than 3 rows of seats) 1981–1986
|-
| 1G0 || GMC Rapid Transit Series (RTS) bus 1981–1984
|-
| 1G0 || Opel/Vauxhall car 2007–2017
|-
| 1G1 || [[../GM/VIN Codes|Chevrolet]] car
|-
| 1G2 || [[../GM/VIN Codes|Pontiac]] car
|-
| 1G3 || [[../GM/VIN Codes|Oldsmobile]] car
|-
| 1G4 || [[../GM/VIN Codes|Buick]] car
|-
| 1G5 || GMC MPV/SUV 1981–1986
|-
| 1G6 || [[../GM/VIN Codes|Cadillac]] car
|-
| 1G7 || Pontiac car only sold by GM Canada
|-
| 1G8 || Chevrolet MPV/SUV 1981–1986
|-
| 1G8 || [[../GM/VIN Codes|Saturn]] car 1991–2010
|-
| 1G9/492 || GreenPower Motor Company incomplete vehicle
|-
| 1G9/495 || Google & Waymo
|-
| 1GA || Chevrolet "bus" (van with more than 3 rows of seats)
|-
| 1GB || Chevrolet incomplete vehicles
|-
| 1GC || [[../GM/VIN Codes|Chevrolet]] truck
|-
| 1GD || GMC incomplete vehicles
|-
| 1GE || Cadillac incomplete vehicle
|-
| 1GF || Flxible bus
|-
| 1GG || Isuzu pickup trucks made by GM
|-
| 1GH || GMC Rapid Transit Series (RTS) bus 1985–1986
|-
| 1GH || Oldsmobile MPV/SUV 1990–2004
|-
| 1GH || Holden Acadia 2019–2020
|-
| 1GJ || GMC "bus" (van with more than 3 rows of seats) 1987–
|-
| 1GK || GMC MPV/SUV 1987–
|-
| 1GM || [[../GM/VIN Codes|Pontiac]] MPV
|-
| 1GN || [[../GM/VIN Codes|Chevrolet]] MPV/SUV 1987-
|-
| 1GR || Great Dane Trailers (truck trailer)
|-
| 1GT || [[../GM/VIN Codes|GMC]] Truck
|-
| 1GW || Grumman Olson Kubvan (truck)
|-
| 1GY || [[../GM/VIN Codes|Cadillac]] SUV
|-
| 1HA || Chevrolet incomplete vehicles (Express cutaway) made by Navistar International/International Motors
|-
| 1HD || Harley-Davidson & LiveWire
|-
| 1HF || Honda motorcycle/ATV/UTV
|-
| 1HG || [[../Honda/VIN Codes|Honda]] car made by Honda of America Mfg. in Ohio
|-
| 1HP || International Trucks (complete vehicle - straight truck)
|-
| 1HS || International Trucks & Caterpillar Trucks (complete vehicle - truck tractor)
|-
| 1HT || International Trucks & Caterpillar Trucks & Chevrolet Silverado 4500HD, 5500HD, 6500HD (incomplete vehicle - straight truck)
|-
| 1HV || International or IC Bus (incomplete vehicle - bus)
|-
| 1H9/674 || Hines Specialty Vehicle Group
|-
| 1JC || Jeep SUV 1981–1988 (using AMC-style VIN structure)
|-
| 1JJ || Wabash (truck trailer)
|-
| 1JT || Jeep truck 1981–1988 (using AMC-style VIN structure)
|-
| 1JU || Marmon Motor Company
|-
| 1J4 || Jeep SUV 1989–2011 (using Chrysler-style VIN structure)
|-
| 1J7 || Jeep truck 1989–1992 (using Chrysler-style VIN structure)
|-
| 1J8 || Jeep SUV 2002–2011 (using Chrysler-style VIN structure)
|-
| 1K9/058 || Kovatech Mobile Equipment (fire engine)
|-
| 1LH || Landoll (truck trailer)
|-
| 1LJ || Lincoln incomplete vehicle
|-
| 1LN || [[../Ford/VIN Codes|Lincoln]] car
|-
| 1LV || Lectra Motors
|-
| 1L0 || Lufkin Trailers
|-
| 1L1 || Lincoln car – limousine
|-
| 1L9/155 || LA Exotics
|-
| 1L9/234 || Laforza
|-
| 1MB || Mercedes-Benz Truck Co.
|-
| 1ME || [[../Ford/VIN Codes|Mercury]] car
|-
| 1MR || Continental Mark VI & VII 1981–1985 & Continental sedan 1982–1985
|-
| 1M0 || John Deere Gator
|-
| 1M1 || Mack Truck USA (truck)
|-
| 1M2 || Mack Truck USA (incomplete vehicle)
|-
| 1M3 || Mack Truck USA (glider)
|-
| 1M8 || Motor Coach Industries (bus)
|-
| 1M9/089 || Mauck Special Vehicles (bus)
|-
| 1M9/682 || Mosler Automotive
|-
| 1M9/816 || Proterra Through mid-2019
|-
| 1N4 || Nissan car
|-
| 1N6 || Nissan truck
|-
| 1N9/019 || Neoplan USA
|-
| 1N9/084 || Eldorado National (California)
|-
| 1N9/140 || North American Bus Industries (bus)
|-
| 1N9/393 || Nikola Corporation (truck)
|-
| 1NK || Kenworth (incomplete vehicle)
|-
| 1NL || Gulf Stream Coach (recreational vehicles)
|-
| 1NN || Monon made by Evans Products Co. (truck trailer)
|-
| 1NP || Peterbilt (incomplete vehicle)
|-
| 1NX || Toyota car made by NUMMI
|-
| 1P3 || Plymouth car
|-
| 1P4 || Plymouth MPV/SUV
|-
| 1P7 || Plymouth Scamp
|-
| 1P9/038 || Hawk Vehicles, Inc. (Trihawk motorcycles)
|-
| 1P9/213 || Panoz
|-
| 1P9/255 || Pinson Truck Equipment Company (truck trailer)
|-
| 1PM || Polar Tank Trailer (truck trailer)
|-
| 1PT || Trailmobile Trailer Corporation (truck trailer)
|-
| 1PY || John Deere USA
|-
| 1RF || Roadmaster, Monaco Coach Corporation
|-
| 1RN || Reitnouer (truck trailer)
|-
| 1R9/956 || Reede Fabrication and Design (motorcycles)
|-
| 1ST || Airstream (recreational vehicles)
|-
| 1S1 || Strick Trailers (truck trailer)
|-
| 1S9/003 || Sutphen Corporation (fire engines - truck)
|-
| 1S9/009|| Superior Trailer Works (truck trailer)
|-
| 1S9/098 || Scania AB (Scania CN112 bus made in Orange, CT)
|-
| 1S9/842 || Saleen S7
|-
| 1S9/260 || Stairs Welding RL (truck trailer)
|-
| 1S9/901 || Suckerpunch Sallys, LLC
|-
| 1S9/944 || SSC North America
|-
| 1TD || Timpte (truck trailer)
|-
| 1TK || Trail King (truck trailer)
|-
| 1TD || Transcraft Corporation (truck trailer)
|-
| 1T7 || Thomas Built Buses
|-
| 1T8 || Thomas Built Buses
|-
| 1T9/072 || The Trailer Co. (truck trailer)
|-
| 1T9/717 || Thunder Mountain Custom Cycles
|-
| 1T9/825 || TICO Manufacturing Company (truck)
|-
| 1T9/899 || Tomcar USA
|-
| 1T9/970 || Three Two Chopper
|-
| 1TC || Coachmen Recreational Vehicle Co., LLC
|-
| 1TU || Transportation Manufacturing Corporation
|-
| 1UJ || Jayco, Inc.
|-
| 1UT || AM General military trucks, Jeep DJ made by AM General
|-
| 1UY || Utility Trailer (truck trailer)
|-
| 1VH || Orion Bus Industries
|-
| 1VW || Volkswagen car
|-
| 1V1 || Volkswagen truck
|-
| 1V2 || Volkswagen SUV
|-
| 1V9/048 || Vector Aeromotive
|-
| 1V9/113 || Vantage Vehicle International Inc (low-speed vehicle)
|-
| 1V9/190 || Vanderhall Motor Works
|-
| 1WA || White Motor Company (Autocar brand truck)
|-
| 1WB || White Motor Company (Autocar brand incomplete vehicle)
|-
| 1WD || White Motor Company (Autocar brand glider)
|-
| 1WT || Winnebago Industries: Winnebago M.P.V.
|-
| 1WU || White Motor Company (White brand truck)
|-
| 1WV || Winnebago Industries: Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
|-
| 1WW || Winnebago Industries: Winnebago M.P.V. - Class B Motorhome built on Renault chassis [Winnebago LeSharo, Centauri, Itasca Phasar]
|-
| 1WX || White Motor Company (White brand incomplete vehicle)
|-
| 1WY || White Motor Company (White brand glider)
|-
| 1W1 || Wilson Trailer Co. (truck trailer)
|-
| 1W8 || Witzco (truck trailer)
|-
| 1W9/010 || Weld-It Company (truck trailer)
|-
| 1W9/485 || Wheego Electric Cars
|-
| 1W9/488 || Certified Stainless Services Inc. DBA West-Mark (truck trailer) (2010 & later)
|-
| 1XA || Excalibur Automobile Corporation
|-
| 1XK || Kenworth (truck)
|-
| 1XM || Renault Alliance/GTA/Encore 1984–1987
|-
| 1XP || Peterbilt (truck)
|-
| 1Y1 || Chevrolet/Geo car made by NUMMI
|-
| 1YJ || Rokon International, Inc.
|-
| 1YV || [[../Ford/VIN Codes|Mazda made by Mazda Motor Manufacturing USA/AutoAlliance International]]
|-
| 1ZV || [[../Ford/VIN Codes|Ford made by Mazda Motor Manufacturing USA/AutoAlliance International]]
|-
| 1ZW || [[../Ford/VIN Codes|Mercury made by AutoAlliance International]]
|-
| 1Z3 1Z7 || Mitsubishi Raider
|-
| 1Z9/170 || [[w:Orange County Choppers|Orange County Choppers]]
|-
| 10B || Brenner Tank (truck trailer)
|-
| 10R || E-Z-GO
|-
| 10T || Oshkosh Corporation
|-
| 11H || Hendrickson Mobile Equipment, Inc. (fire engines - incomplete vehicle)
|-
| 12A || Avanti
|-
| 137 || AM General Hummer & Hummer H1
|-
| 13N || Fontaine (truck trailer)
|-
| 15G || Gillig bus
|-
| 16C || Clenet Coachworks
|-
| 16W || Certified Stainless Services Inc. DBA West-Mark (truck trailer) (prior to 2010)
|-
| 16X || Vixen 21 motorhome
|-
| 17N || John Deere incomplete vehicle (RV chassis)
|-
| 19U || Acura car made by Honda of America Mfg. in Ohio
|-
| 19V || Acura car made by Honda Manufacturing of Indiana
|-
| 19X || Honda car made by Honda Manufacturing of Indiana
|-
| 2A3 || Imperial
|-
| 2A4 2A8 || Chrysler brand MPV/SUV 2006–2011 only
|-
| 2AY 2AZ || Hino
|-
| 2BC || Jeep Wrangler (YJ) 1987–1988 (using AMC-style VIN structure)
|-
| 2BP || Ski-Doo
|-
| 2BV || Can-Am & Bombardier ATV
|-
| 2BW || Can-Am Commander E LSV
|-
| 2BX || Can-Am Spyder
|-
| 2BZ || Can-Am Freedom Trailer for Can-Am Spyder
|-
| 2B1 || Orion Bus Industries
|-
| 2B3 || Dodge car 1981–2011
|-
| 2B4 || Dodge MPV 1981–2002
|-
| 2B5 || Dodge "bus" (van with more than 3 rows of seats) 1981–2002
|-
| 2B6 || Dodge incomplete vehicle 1981–2002
|-
| 2B7 || Dodge truck 1981–2002
|-
| 2B9/001 || BWS Manufacturing (truck trailer)
|-
| 2C1 || Geo/Chevrolet car made by CAMI Automotive
|-
| 2C3 || Chrysler brand car 1981–2011
|-
| 2C3 || Chrysler Group (all brands) car (including Lancia) 2012-
|-
| 2C4 || Chrysler brand MPV/SUV 2000–2005
|-
| 2C4 || Chrysler Group (all brands) MPV (including Lancia Voyager & Volkswagen Routan) 2012-
|-
| 2C7 || Pontiac car made by CAMI Automotive only sold by GM Canada
|-
| 2C8 || Chrysler brand MPV/SUV 2001–2005
|-
| 2C9/145 || Campagna Motors
|-
| 2C9/197 || Canadian Electric Vehicles
|-
| 2CC || American Motors Corporation MPV
|-
| 2CG || Asüna/Pontiac SUV made by CAMI Automotive only sold by GM Canada
|-
| 2CK || GMC Tracker SUV made by CAMI Automotive only sold by GM Canada 1990–1991 only
|-
| 2CK || Pontiac Torrent SUV made by CAMI Automotive 2006–2009 only
|-
| 2CM || American Motors Corporation car
|-
| 2CN || Geo/Chevrolet SUV made by CAMI Automotive 1990–2011 only
|-
| 2CT || GMC Terrain SUV made by CAMI Automotive 2010–2011 only
|-
| 2D4 || Dodge MPV 2003–2011 only
|-
| 2D6 || Dodge incomplete vehicle 2003
|-
| 2D7 || Dodge truck 2003
|-
| 2D8 || Dodge MPV 2003–2011 only
|-
| 2DG || Ontario Drive & Gear
|-
| 2DM || Di-Mond Trailers (truck trailer)
|-
| 2DN || Dynasty Electric Car Corporation
|-
| 2EZ || Electra Meccanica Vehicles Corp. (Solo)
|-
| 2E3 || Eagle car 1989–1997 (using Chrysler-style VIN structure)
|-
| 2E4 || 2011 Lancia MPV (Voyager)
|-
| 2E9/080 || Electra Meccanica Vehicles Corp. (Solo)
|-
| 2FA || [[../Ford/VIN Codes|Ford]] car
|-
| 2FH || Zenn Motor Co., Ltd. (low-speed vehicle)
|-
| 2FM || [[../Ford/VIN Codes|Ford]] MPV/SUV
|-
| 2FT || [[../Ford/VIN Codes|Ford]] truck
|-
| 2FU || Freightliner (truck)
|-
| 2FV || Freightliner (incomplete vehicle)
|-
| 2FW || Sterling Trucks (truck-complete vehicle)
|-
| 2FY || New Flyer
|-
| 2FZ || Sterling Trucks (incomplete vehicle)
|-
| 2Gx || [[../GM/VIN Codes|General Motors]] Canada
|-
| 2G0 || GMC "bus" (van with more than 3 rows of seats) 1981–1986
|-
| 2G1 || [[../GM/VIN Codes|Chevrolet]] car
|-
| 2G2 || [[../GM/VIN Codes|Pontiac]] car
|-
| 2G3 || [[../GM/VIN Codes|Oldsmobile]] car
|-
| 2G4 || [[../GM/VIN Codes|Buick]] car
|-
| 2G5 || GMC MPV 1981–1986
|-
| 2G5 || Chevrolet BrightDrop / BrightDrop Zevo truck 2023-
|-
| 2G6 || [[../GM/VIN Codes|Cadillac]] car
|-
| 2G7 || Pontiac car only sold by GM Canada
|-
| 2G8 || Chevrolet MPV 1981–1986
|-
| 2GA || Chevrolet "bus" (van with more than 3 rows of seats)
|-
| 2GB || Chevrolet incomplete vehicles
|-
| 2GC || Chevrolet truck
|-
| 2GD || GMC incomplete vehicles
|-
| 2GE || Cadillac incomplete vehicle
|-
| 2GH || GMC GM New Look bus & GM Classic series bus
|-
| 2GJ || GMC "bus" (van with more than 3 rows of seats) 1987–
|-
| 2GK || GMC MPV/SUV 1987–
|-
| 2GN || Chevrolet MPV/SUV 1987-
|-
| 2GT || GMC truck
|-
| 2HG || [[../Honda/VIN Codes|Honda]] car made by Honda of Canada Manufacturing
|-
| 2HH || Acura car made by Honda of Canada Manufacturing
|-
| 2HJ || [[../Honda/VIN Codes|Honda]] truck made by Honda of Canada Manufacturing
|-
| 2HK || [[../Honda/VIN Codes|Honda]] MPV/SUV made by Honda of Canada Manufacturing
|-
| 2HM || Hyundai Canada
|-
| 2HN || Acura SUV made by Honda of Canada Manufacturing
|-
| 2HP || International Trucks (complete vehicle - straight truck)
|-
| 2HS || International Trucks (complete vehicle - truck tractor)
|-
| 2HT || International Trucks (incomplete vehicle - straight truck)
|-
| 2HV || International or IC Bus (incomplete vehicle - bus)
|-
| 2J4 || Jeep Wrangler (YJ) 1989–1992 (using Chrysler-style VIN structure)
|-
| 2L1 || Lincoln incomplete vehicle – limo
|-
| 2LD || Triple E Canada Ltd.
|-
| 2LJ || Lincoln incomplete vehicle – hearse
|-
| 2LM || Lincoln SUV
|-
| 2LN || Lincoln car
|-
| 2M1 || Mack Trucks Canada (truck)
|-
| 2M2 || Mack Trucks Canada (incomplete vehicle)
|-
| 2M3 || Mack Truck Canada (glider)
|-
| 2ME || [[../Ford/VIN Codes|Mercury]] car
|-
| 2MG || Motor Coach Industries (Produced from Sept. 1, 2008 on)
|-
| 2MH || [[../Ford/VIN Codes|Mercury]] incomplete vehicle
|-
| 2MR || [[../Ford/VIN Codes|Mercury]] MPV
|-
| 2M9/044 || Westward Industries
|-
| 2M9/058 || Motor Coach Industries
|-
| 2NK || Kenworth incomplete vehicle
|-
| 2NP || Peterbilt incomplete vehicle
|-
| 2NV || Nova Bus
|-
| 2P3 || Plymouth car
|-
| 2P4 || Plymouth MPV 1981–2000
|-
| 2P5 || Plymouth "bus" (van with more than 3 rows of seats) 1981–1983
|-
| 2P9/001 || Prevost 1981–1995
|-
| 2PC || Prevost 1996-
|-
| 2S2 || Suzuki car made by CAMI Automotive
|-
| 2S3 || Suzuki SUV made by CAMI Automotive
|-
| 2TU || Tri-Star Industries Limited
|-
| 2T1 || [[../Toyota/VIN Codes|Toyota]] car made by TMMC
|-
| 2T2 || Lexus SUV made by TMMC
|-
| 2T3 || [[../Toyota/VIN Codes|Toyota]] SUV made by TMMC
|-
| 2T9/206 || Triple E Canada Ltd.
|-
| 2V4 || Volkswagen Routan made by Chrysler Canada
|-
| 2V8 || Volkswagen Routan made by Chrysler Canada
|-
| 2W9/044 || Westward Industries
|-
| 2WK || Western Star (truck)
|-
| 2WL || Western Star (incomplete vehicle)
|-
| 2WM || Western Star (glider)
|-
| 2XK || Kenworth (truck)
|-
| 2XM || Eagle Premier 1988 only (using AMC-style VIN structure)
|-
| 2XP || Peterbilt (truck)
|-
| 3A4 3A8 || Chrysler brand MPV 2006–2010 only
|-
| 3A9/050 || MARGO (truck trailer)
|-
| 3AK || Freightliner Trucks (truck)
|-
| 3AL || Freightliner Trucks (incomplete vehicle)
|-
| 3AW || Fruehauf de Mexico (truck trailer)
|-
| 3AX || Scania Mexico
|-
| 3BE || Scania Mexico (buses)
|-
| 3BH || Western Star 3700 (truck) made by DINA S.A.
|-
| 3BH || Western Star (truck)
|-
| 3BJ || Western Star 3700 (incomplete vehicle) made by DINA S.A.
|-
| 3BJ || Western Star (incomplete vehicle)
|-
| 3BK || Kenworth (incomplete vehicle)
|-
| 3BM || Motor Coach Industries bus made by DINA S.A.
|-
| 3BP || Peterbilt (incomplete vehicle)
|-
| 3B3 || Dodge car 1981–2011
|-
| 3B4 || Dodge SUV 1986–1993
|-
| 3B6 || Dodge incomplete vehicle 1981–2002
|-
| 3B7 || Dodge truck 1981–2002
|-
| 3C3 || Chrysler brand car 1981–2011
|-
| 3C3 || Chrysler Group (all brands) car (including Fiat) 2012-
|-
| 3C4 || Chrysler brand MPV 2001–2005
|-
| 3C4 || Chrysler Group (all brands) MPV (including Fiat) 2012-
|-
| 3C6 || Chrysler Group (all brands) truck 2012–
|-
| 3C7 || Chrysler Group (all brands) incomplete vehicle 2012–
|-
| 3C8 || Chrysler brand MPV 2001–2005
|-
| 3CA || Chrysler brand MPV 2001 (PT Cruiser w/serial# 232057-265662)
|-
| 3CE || Volvo Buses de Mexico
|-
| 3CG || KTMMEX S.A. de C.V.
|-
| 3CZ || Honda SUV made by Honda de Mexico
|-
| 3D2 || Dodge incomplete vehicle 2007–2009
|-
| 3D3 || Dodge truck 2006–2009
|-
| 3D4 || Dodge SUV 2009–2011
|-
| 3D6 || Dodge incomplete vehicle 2003–2011
|-
| 3D7 || Dodge truck 2002–2011
|-
| 3EL || ATRO (truck trailer)
|-
| 3E4 || 2011 Fiat SUV (Freemont)
|-
| 3FA || [[../Ford/VIN Codes|Ford]] car
|-
| 3FC || Ford stripped chassis made by Ford & IMMSA
|-
| 3FE || [[../Ford/VIN Codes|Ford]] Mexico
|-
| 3FM || [[../Ford/VIN Codes|Ford]] MPV/SUV
|-
| 3FN || Ford F-650/F-750 made by Blue Diamond Truck Co. (truck)
|-
| 3FR || Ford F-650/F-750 & Ford LCF made by Blue Diamond Truck Co. (incomplete vehicle)
|-
| 3FT || [[../Ford/VIN Codes|Ford]] truck
|-
| 3F6 || Sterling Bullet
|-
| 3G || [[../GM/VIN Codes|General Motors]] Mexico
|-
| 3G0 || Saab 9-4X 2011
|-
| 3G0 || Holden Equinox 2018–2020
|-
| 3G1 || [[../GM/VIN Codes|Chevrolet]] car
|-
| 3G2 || [[../GM/VIN Codes|Pontiac]] car
|-
| 3G4 || [[../GM/VIN Codes|Buick]] car
|-
| 3G5 || [[../GM/VIN Codes|Buick]] SUV
|-
| 3G7 || [[../GM/VIN Codes|Pontiac]] SUV
|-
| 3GA || JAC models assembled by Giant Motors in Mexico
|-
| 3GC || Chevrolet truck
|-
| 3GK || GMC SUV
|-
| 3GM || Holden Suburban
|-
| 3GN || Chevrolet SUV
|-
| 3GP || Honda Prologue EV made by GM
|-
| 3GS || Saturn SUV
|-
| 3GT || GMC truck
|-
| 3GY || Cadillac SUV
|-
| 3H1 || Honda motorcycle/UTV
|-
| 3H3 || Hyundai de Mexico, S.A. de C.V. for Hyundai Translead (truck trailers)
|-
| 3HA || International Trucks (incomplete vehicle - straight truck) made by Blue Diamond Truck Co. 2011-2015
|-
| 3HA || International Trucks (incomplete vehicle - straight truck) made by Navistar Mexico/International Motors Mexico 2016-
|-
| 3HC || International Trucks (complete vehicle - truck tractor) made by Blue Diamond Truck Co. 2011-2015
|-
| 3HC || International Trucks (complete vehicle - truck tractor) made by Navistar Mexico/International Motors Mexico 2016-
|-
| 3HD || Acura SUV made by Honda de Mexico
|-
| 3HG || [[../Honda/VIN Codes|Honda]] car made by Honda de Mexico
|-
| 3HR || International Trucks (complete vehicle - truck)
|-
| 3HS || International Trucks & Caterpillar Trucks (complete vehicle - truck tractor)
|-
| 3HT || International Trucks & Caterpillar Trucks (incomplete vehicle - straight truck)
|-
| 3HV || International (incomplete vehicle - bus)
|-
| 3JB || BRP Mexico (Can-Am ATV/UTV & Can-Am Ryker)
|-
| 3KM || Kia/Hyundai MPV/SUV made by KMMX
|-
| 3KP || Kia/Hyundai car made by KMMX
|-
| 3LN || Lincoln car
|-
| 3MA || Mercury car (1988-1995)
|-
| 3MD || Mazda de Mexico car (Mazda 2)
|-
| 3ME || Mercury car (1996-2011)
|-
| 3MF || BMW M car
|-
| 3MG || Isuzu Motors de Mexico
|-
| 3MJ || Mazda CX-3 (Mazda de Mexico)
|-
| 3MV || Mazda de Mexico SUV (Mazda CX-30)
|-
| 3MW || BMW car
|-
| 3MY || Toyota car made by Mazda de Mexico Vehicle Operation
|-
| 3MZ || Mazda de Mexico car (Mazda 3)
|-
| 3N1 || Nissan Mexico car
|-
| 3N6 || Nissan Mexico truck & Chevrolet City Express
|-
| 3N8 || Nissan Mexico MPV
|-
| 3NS || Polaris Industries ATV
|-
| 3NE || Polaris Industries UTV
|-
| 3P3 || Plymouth car
|-
| 3PC || Infiniti SUV made by COMPAS
|-
| 3TM || Toyota truck made by TMMBC
|-
| 3TY || Toyota truck made by TMMGT
|-
| 3VV || Volkswagen Mexico SUV
|-
| 3VW || Volkswagen Mexico car
|-
| 3WK || Kenworth truck
|-
| 3WP || Peterbilt truck
|-
| 3X1 || Mack Truck Mexico (truck)
|-
| 3X2 || Mack Truck Mexico (incomplete vehicle)
|-
| 4A3 || Mitsubishi Motors car
|-
| 4A4 || Mitsubishi Motors SUV
|-
| 4B3 || Dodge car made by Diamond-Star Motors factory
|-
| 4B9/038 || BYD Coach & Bus LLC
|-
| 4C3 || Chrysler car made by Diamond-Star Motors factory
|-
| 4C6 || Reinke Manufacturing Company (truck trailer)
|-
| 4C9/272 || Christini Technologies (motorcycle)
|-
| 4C9/561 || Czinger
|-
| 4C9/626 || Canoo Inc.
|-
| 4CD || Oshkosh Chassis Division incomplete vehicle (RV chassis)
|-
| 4DR || IC Bus (complete vehicle - bus)
|-
| 4E3 || Eagle car made by Diamond-Star Motors factory
|-
| 4EN || E-ONE, Inc. (fire engines - truck)
|-
| 4EZ || KZ Recreational Vehicles (trailer)
|-
| 4F2 || Mazda SUV made by Ford
|-
| 4F4 || Mazda truck made by Ford
|-
| 4G1 || Chevrolet Cavalier convertible made by Genasys L.C. – a GM/ASC joint venture
|-
| 4G2 || Pontiac Sunfire convertible made by Genasys L.C. – a GM/ASC joint venture
|-
| 4G3 || Toyota Cavalier made by GM
|-
| 4G5 || General Motors EV1
|-
| 4GD || WhiteGMC Brigadier 1988–1989 made by GM
|-
| 4GD || Opel/Vauxhall Sintra
|-
| 4GL || Buick incomplete vehicle
|-
| 4GT || Isuzu incomplete vehicle built by GM
|-
| 4JG || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] SUV
|-
| 4J8 || LBT, Inc. (truck trailer)
|-
| 4KA || IC Bus (complete vehicle - truck)
|-
| 4KB || Chevrolet W-Series incomplete vehicle (gas engine only) made by GM
|-
| 4KD || GMC W-Series incomplete vehicle (gas engine only) made by GM
|-
| 4KL || Isuzu N-Series incomplete vehicle (gas engine only) built by GM
|-
| 4LM || Capacity Trucks (truck) [terminal tractors]
|-
| 4M2 || [[../Ford/VIN Codes|Mercury]] MPV/SUV
|-
| 4ML || Oshkosh Trailer Division
|-
| 4MZ || Buell Motorcycle Company
|-
| 4N2 || Nissan Quest made by Ford
|-
| 4NU || Isuzu Ascender made by GM
|-
| 4P1 || Pierce Manufacturing Inc. USA
|-
| 4P3 || Plymouth car made by Diamond-Star Motors factory 1990–1994
|-
| 4P3 || Mitsubishi Motors SUV made by Mitsubishi Motor Manufacturing of America 2013–2015 for export only
|-
| 4RK || Nova Bus & Prevost made by Nova Bus (US) Inc.
|-
| 4S1 || Isuzu truck made by Subaru Isuzu Automotive
|-
| 4S2 || Isuzu SUV made by Subaru Isuzu Automotive & 2nd gen. Holden Frontera made by SIA
|-
| 4S3 || [[../Subaru/VIN Codes|Subaru]] car
|-
| 4S4 || [[../Subaru/VIN Codes|Subaru]] SUV/MPV
|-
| 4S6 || Honda SUV made by Subaru Isuzu Automotive
|-
| 4S7 || Spartan Motors incomplete vehicle
|-
| 4S9/197 || Smith Electric Vehicles
|-
| 4S9/345 || Satellite Suites (trailer)
|-
| 4S9/419 || Spartan Motors truck
|-
| 4S9/454 || Scuderia Cameron Glickenhaus passenger car
|-
| 4S9/520 || Signature Autosport, LLC (Osprey Custom Cars)
|-
| 4S9/542 || Scuderia Cameron Glickenhaus SCG Boot (M.P.V.)
|-
| 4S9/544 || Scuderia Cameron Glickenhaus passenger car
|-
| 4S9/559 || Spartan Fire, LLC truck (formerly Spartan ER)
|-
| 4S9/560 || Spartan Fire, LLC incomplete vehicle (formerly Spartan ER)
|-
| 4S9/569 || SC Autosports, LLC (Kandi)
|-
| 4TA || [[../Toyota/VIN Codes|Toyota]] truck made by NUMMI
|-
| 4T1 || [[../Toyota/VIN Codes|Toyota]] car made by Toyota Motor Manufacturing Kentucky
|-
| 4T3 || [[../Toyota/VIN Codes|Toyota]] MPV/SUV made by Toyota Motor Manufacturing Kentucky
|-
| 4T4 || [[../Toyota/VIN Codes|Toyota]] car made by Subaru of Indiana Automotive
|-
| 4T9/208 || Xos, Inc.
|-
| 4T9/228 || Lumen Motors
|-
| 4UF || Arctic Cat Inc.
|-
| 4US || BMW car
|-
| 4UZ || Freightliner Custom Chassis Corporation & <br /> gas-powered Mitsubishi Fuso trucks assembled by Freightliner Custom Chassis & <br /> Thomas Built Buses FS-65 & Saf-T-Liner C2
|-
| 4V0 || Crossroads RV (recreational vehicles)
|-
| 4V1 || WhiteGMC (truck) 1988-1995
|-
| 4V2 || WhiteGMC (incomplete vehicle) 1988-1995
|-
| 4V3 || WhiteGMC (glider) 1988-1995
|-
| 4V1 || Volvo Trucks North America [low cab-over engine] (truck) 2000-2003
|-
| 4V2 || Volvo Trucks North America [low cab-over engine] (incomplete vehicle) 2000-2003
|-
| 4V4 || Volvo Trucks North America [conventional] (truck) 1996+
|-
| 4V5 || Volvo Trucks North America [conventional] (incomplete vehicle) 1996+
|-
| 4V6 || Volvo Trucks North America (glider)
|-
| 4VA || Volvo Trucks North America [conventional- Class 7 w/air brakes] (truck) 1997-1999
|-
| 4VB || Volvo Trucks North America [conventional- Class 7 w/air brakes] (incomplete vehicle) 1997-1999
|-
| 4VC || Volvo Trucks North America [conventional- Class 7 w/hydraulic brakes] (incomplete vehicle)
|-
| 4VD || Volvo Trucks North America [low cab-over engine- Class 7 w/air brakes] (truck)
|-
| 4VE || Volvo Trucks North America [low cab-over engine- Class 7 w/air brakes] (incomplete vehicle)
|-
| 4VG || Volvo Trucks North America [conventional- Class 8 w/air brakes] (truck) 1997-1999
|-
| 4VH || Volvo Trucks North America [conventional- Class 8 w/air brakes] (incomplete vehicle) 1997-1999
|-
| 4VJ || Volvo Trucks North America [high cab-over engine- Class 8 w/air brakes] (truck)
|-
| 4VK || Volvo Trucks North America [high cab-over engine- Class 8 w/air brakes] (incomplete vehicle)
|-
| 4VL || Volvo Trucks North America [low cab-over engine- Class 8 w/air brakes] (truck)
|-
| 4VM || Volvo Trucks North America [low cab-over engine- Class 8 w/air brakes] (incomplete vehicle)
|-
| 4VZ || Spartan Motors/The Shyft Group (incomplete vehicle – bare chassis only)
|-
| 4WW || Wilson Trailer Sales
|-
| 4W1 || '24+ Chevrolet Suburban HD made by GM Defense for US govt. in Concord, NC
|-
| 4W5 || Acura ZDX EV made by GM
|-
| 4XA || Polaris Inc.
|-
| 4X4 || Forest River
|-
| 4YD || KeyStone RV Company (recreational vehicle)
|-
| 4YM || Carry-On Trailer, Inc.
|-
| 4YM || Anderson Manufacturing (trailer)
|-
| 4Z3 || American LaFrance truck
|-
| 43C || Consulier
|-
| 44K || HME Inc. (fire engines - incomplete vehicle) (HME=Hendrickson Mobile Equipment)
|-
| 46G || Gillig incomplete vehicle
|-
| 46J || Federal Motors Inc
|-
| 478 || Honda ATV
|-
| 480 || Sterling Trucks (truck)
|-
| 49H || Sterling Trucks (incomplete vehicle)
|-
| 5AS || Global Electric Motorcars (GEM) 1999-2011
|-
| 5AX || Armor Chassis (truck trailer)
|-
| 5A4 || Load Rite Trailers Inc.
|-
| 5BP || Solectria
|-
| 5BZ || Nissan "bus" (van with more than 3 rows of seats)
|-
| 5B4 || Workhorse Custom Chassis, LLC incomplete vehicle (RV chassis)
|-
| 5CD || Indian Motorcycle Company of America (Gilroy, CA)
|-
| 5CJ || Western Star Trucks (incomplete vehicle)
|-
| 5CK || Western Star Trucks (truck)
|-
| 5CX || Shelby Series 1
|-
| 5DF || Thomas Dennis Company LLC
|-
| 5DG || Terex Advance Mixer
|-
| 5EH || Excelsior-Henderson Motorcycle
|-
| 5EO || Cottrell (truck trailer)
|-
| 5FC || Columbia Vehicle Group (Columbia, Tomberlin) (low-speed vehicles)
|-
| 5FN || Honda MPV/SUV made by Honda Manufacturing of Alabama
|-
| 5FP || Honda truck made by Honda Manufacturing of Alabama
|-
| 5FR || Acura SUV made by Honda Manufacturing of Alabama
|-
| 5FT || Feeling Trailers
|-
| 5FY || New Flyer
|-
| 5GA || Buick MPV/SUV
|-
| 5GD || Daewoo G2X
|-
| 5GN || Hummer H3T
|-
| 5GR || Hummer H2
|-
| 5GT || Hummer H3
|-
| 5GZ || Saturn MPV/SUV
|-
| 5G8 || Holden Volt
|-
| 5HD || Harley-Davidson for export markets
|-
| 5HT || Heil Trailer (truck trailer)
|-
| 5J5 || Club Car
|-
| 5J6 || Honda SUV made by Honda of America Mfg. in Ohio
|-
| 5J8 || Acura SUV made by Honda of America Mfg. in Ohio
|-
| 5KB || Honda car made by Honda Manufacturing of Alabama
|-
| 5KJ || Western Star Trucks (truck)
|-
| 5KK || Western Star Trucks (incomplete vehicle)
|-
| 5KM || Vento Motorcycles
|-
| 5KT || Karavan Trailers
|-
| 5L1 || [[../Ford/VIN Codes|Lincoln]] SUV - Limousine (2004–2009)
|-
| 5L5 || American IronHorse Motorcycle
|-
| 5LD || Ford & Lincoln incomplete vehicle – limousine (2010–2014)
|-
| 5LM || [[../Ford/VIN Codes|Lincoln]] SUV
|-
| 5LT || [[../Ford/VIN Codes|Lincoln]] truck
|-
| 5MZ || Buell Motorcycle Company for export markets
|-
| 5N1 || Nissan & Infiniti SUV
|-
| 5N3 || Infiniti SUV
|-
| 5NH || Forest River
|-
| 5NM || Hyundai SUV made by HMMA
|-
| 5NP || Hyundai car made by HMMA
|-
| 5NT || Hyundai truck made by HMMA
|-
| 5PV || Hino incomplete vehicle made by Hino Motors Manufacturing USA
|-
| 5RJ || International MXT made by Android Industries - Springfield LLC
|-
| 5RX || Heartland Recreational Vehicles
|-
| 5S3 || Saab 9-7X
|-
| 5SA || Suzuki Manufacturing of America Corp. (ATV)
|-
| 5SX || American LaFrance incomplete vehicle (Condor)
|-
| 5TB || [[../Toyota/VIN Codes|Toyota]] truck made by TMMI
|-
| 5TD || Toyota MPV/SUV & Lexus TX made by TMMI
|-
| 5TE || Toyota truck made by NUMMI
|-
| 5TF || Toyota truck made by TMMTX
|-
| 5TU || Construction Trailer Specialist (truck trailer)
|-
| 5UM || BMW M car
|-
| 5UX || BMW SUV
|-
| 5VC || Autocar incomplete vehicle
|-
| 5VF || American Electric Vehicle Company (low-speed vehicle)
|-
| 5VK || Great Northern Trailer Works (truck trailer)
|-
| 5VP || Victory Motorcycles
|-
| 5V4 || Autocar truck
|-
| 5V8 || Vanguard National (truck trailer)
|-
| 5WE || IC Bus (incomplete vehicle - bus or truck)
|-
| 5XX || Kia car made by KMMG
|-
| 5XY || Kia/Hyundai SUV made by KMMG
|-
| 5YA || Indian Motorcycle Company (Kings Mountain, NC)
|-
| 5YF || Toyota car made by TMMMS
|-
| 5YJ || Tesla, Inc. passenger car (only used for US-built Model S and Model 3 starting from Nov, 1st 2021)
|-
| 5YM || BMW M SUV
|-
| 5YN || Cruise Car, Inc.
|-
| 5Y2 || Pontiac Vibe made by NUMMI
|-
| 5Y4 || Yamaha Motor Motor Mfg. Corp. of America (ATV, UTV)
|-
| 5ZT || Forest River (recreational vehicles)
|-
| 5ZU || Greenkraft (truck)
|-
| 5Z6 || Suzuki Equator (truck) made by Nissan
|-
| 50E || Lucid Motors passenger car
|-
| 50G || Karma Automotive
|-
| 516 || Autocar truck
|-
| 51R || Brammo Motorcycles
|-
| 522 || GreenGo Tek (low-speed vehicle)
|-
| 523 || VPG (The Vehicle Production Group)
|-
| 52C || GEM subsidiary of Polaris Inc.
|-
| 537 || Azure Dynamics Transit Connect Electric
|-
| 538 || Zero Motorcycles
|-
| 53G || Coda Automotive
|-
| 53T || Think North America in Elkhart, IN
|-
| 546 || EBR Motorcycles
|-
| 54C || Winnebago Industries travel trailer
|-
| 54D || Isuzu & Chevrolet commercial trucks built by Spartan Motors/The Shyft Group
|-
| 54F || Rosenbauer Motors (incomplete vehicle)
|-
| 55S || Mercedes-Benz car
|-
| 56K || Indian Motorcycle International, LLC (Polaris subsidiary)
|-
| 573 || Grand Design RV (truck trailer)
|-
| 57C || Maurer Manufacturing (truck trailer)
|-
| 57R || Oreion Motors
|-
| 57S || Lightning Motors Corp. (electric motorcycles)
|-
| 57W || Mobility Ventures
|-
| 57X || Polaris Slingshot
|-
| 58A || Lexus car made by TMMK (Lexus ES)
|-
| 6AB || MAN Australia
|-
| 6AM || Jayco Corp. (RVs)
|-
| 6F1 || Ford
|-
| 6F2 || Iveco Trucks Australia Ltd.
|-
| 6F4 || Nissan Motor Company Australia
|-
| 6F5 || Kenworth Australia
|-
| 6FM || Mack Trucks Australia
|-
| 6FP || [[../Ford/VIN Codes|Ford]] Australia
|-
| 6G1 || [[../GM/VIN Codes|General Motors]]-Holden (post Nov 2002) & Chevrolet & Vauxhall Monaro & VXR8
|-
| 6G2 || [[../GM/VIN Codes|Pontiac]] Australia (GTO & G8)
|-
| 6G3 || [[../GM/VIN Codes|General Motors]] Chevrolet Caprice PPV & SS performance sedan 2014-2017
|-
| 6H8 || [[../GM/VIN Codes|General Motors]]-Holden (pre Nov 2002)
|-
| 6KT || BCI Bus
|-
| 6MM || Mitsubishi Motors Australia
|-
| 6MP || Mercury Capri 1991-1994
|-
| 6T1 || [[../Toyota/VIN Codes|Toyota]] Motor Corporation Australia
|-
| 6T9 || Privately Imported car (VIN issued by Victoria) or Trailer in Australia
|-
| 6U9 || Privately Imported car in Australia
|-
| 6Y9/043 || Intertruck Distributors (NZ) Ltd. - International Trucks New Zealand
|-
| 6ZZ || Privately Imported car in Australia
|-
| 7AB || MAN New Zealand
|-
| 7AT || VIN assigned by the New Zealand Transport Authority Waka Kotahi from 29 November 2009
|-
| 7A1 || Mitsubishi New Zealand
|-
| 7A3 || Honda New Zealand
|-
| 7A4 || Toyota New Zealand
|-
| 7A5 || Ford New Zealand
|-
| 7A7 || Nissan New Zealand
|-
| 7A8 || VIN assigned by the New Zealand Transport Authority Waka Kotahi before 29 November 2009
|-
| 7B2 || Nissan Diesel bus New Zealand
|-
| 7FA || Honda SUV made by Honda Manufacturing of Indiana
|-
| 7FC || Rivian truck
|-
| 7F7 || Arcimoto, Inc.
|-
| 7GZ || GMC incomplete vehicles (Savana cutaway) made by Navistar International/International Motors
|-
| 7G0 || Faraday Future
|-
| 7G2 || Tesla, Inc. truck (used for Nevada-built Semi Trucks & Texas-built Cybertruck)
|-
| 7H4 || Hino truck
|-
| 7H8 || Cenntro Electric Group Limited low-speed vehicle
|-
| 7JD || Volvo Cars SUV
|-
| 7JR || Volvo Cars passenger car
|-
| 7JZ || Proterra From mid-2019 on
|-
| 7KG || Vanderhall Motor Works
|-
| 7KY || Dorsey (truck trailer)
|-
| 7MM || Mazda SUV made by MTMUS (Mazda-Toyota Joint Venture)
|-
| 7MU || Toyota SUV made by MTMUS (Mazda-Toyota Joint Venture)
|-
| 7MW || Cenntro Electric Group Limited truck
|-
| 7MZ || HDK electric vehicles
|-
| 7NA || Navistar Defense/ND Defense
|-
| 7NY || Lordstown Motors
|-
| 7PD || Rivian SUV
|-
| 7RZ || Electric Last Mile Solutions
|-
| 7SA || Tesla, Inc. (US-built MPVs (e.g. Model X, Model Y))
|-
| 7SU || Blue Arc electric trucks made by The Shyft Group
|-
| 7SV || [[../Toyota/VIN Codes|Toyota]] SUV made by TMMTX
|-
| 7SX || Global Electric Motorcars (WAEV) 2022-
|-
| 7SY || Polestar SUV
|-
| 7TN || Canoo
|-
| 7UU || Lucid Motors MPV/SUV
|-
| 7UZ || Kaufman Trailers (trailer)
|-
| 7VV || Ree Automotive
|-
| 7WA || Scout Motors (MPV)
|-
| 7WE || Bollinger Motors incomplete vehicle
|-
| 7YA || Hyundai MPV/SUV made by HMGMA
|-
| 7Z0 || Zoox
|-
| 722 || Isuzu North America Corp. (incomplete vehicle - medium duty)
|-
| 8AB || Mercedes Benz truck & bus (Argentina)
|-
| 8AC || Mercedes Benz vans (for South America)
|-
| 8AD || Peugeot Argentina
|-
| 8AE || Peugeot van
|-
| 8AF || [[../Ford/VIN Codes|Ford]] Argentina
|-
| 8AG || [[../GM/VIN Codes|Chevrolet]] Argentina
|-
| 8AJ || [[../Toyota/VIN Codes|Toyota]] Argentina
|-
| 8AK || Suzuki Argentina
|-
| 8AN || Nissan Argentina
|-
| 8AP || Fiat Argentina
|-
| 8AT || Iveco Argentina
|-
| 8AW || Volkswagen Argentina
|-
| 8A1 || Renault Argentina
|-
| 8A3 || Scania Argentina
|-
| 8BB || Agrale Argentina S.A.
|-
| 8BC || Citroën Argentina
|-
| 8BN || Mercedes-Benz incomplete vehicle (North America)
|-
| 8BR || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America)
|-
| 8BT || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America)
|-
| 8BU || Mercedes-Benz truck (cargo van with 1 row of seats) (North America)
|-
| 8CH || Honda motorcycle
|-
| 8C3 || Honda car/SUV
|-
| 8G1 || Automotores Franco Chilena S.A. Renault
|-
| 8GD || Automotores Franco Chilena S.A. Peugeot
|-
| 8GG || [[../GM/VIN Codes|Chevrolet]] Chile
|-
| 8LD || General Motors OBB - Chevrolet Ecuador
|-
| 8LF || Maresa (Mazda)
|-
| 8LG || Aymesa (Hyundai Motor & Kia)
|-
| 8L4 || Great Wall Motors made by Ciudad del Auto (Ciauto)
|-
| 8XD || Ford Motor Venezuela
|-
| 8XJ || Mack de Venezuela C.A.
|-
| 8XV || Iveco Venezuela C.A.
|-
| 8Z1 || General Motors Venezolana C.A.
|-
| 829 || Industrias Quantum Motors S.A. (Bolivia)
|-
| 9BD || Fiat Brazil & Dodge, Ram made by Fiat Brasil
|-
| 9BF || [[../Ford/VIN Codes|Ford]] Brazil
|-
| 9BG || [[../GM/VIN Codes|Chevrolet]] Brazil
|-
| 9BH || Hyundai Motor Brasil
|-
| 9BM || Mercedes-Benz Brazil car, SUV, commercial truck & bus
|-
| 9BN || Mafersa
|-
| 9BR || [[../Toyota/VIN Codes|Toyota]] Brazil
|-
| 9BS || Scania Brazil
|-
| 9BU ||Gurgel Motores S.A. (defunct Brazilian automaker)
|-
| 9BV || Volvo Trucks Brazil
|-
| 9BW || Volkswagen Brazil
|-
| 9BY || Agrale S.A.
|-
| 9C2 || Moto Honda Da Amazonia Ltda.
|-
| 9C6 || Yamaha Motor Da Amazonia Ltda.
|-
| 9CD || Suzuki (motorcycles) assembled by J. Toledo Motos do Brasil
|-
| 9DF || Puma
|-
| 9DW || Kenworth & Peterbilt trucks [incomplete vehicle] made by Volkswagen do Brasil
|-
| 9EZ || homemade or handbuilt vehicles
|-
| 92H || Origem Brazil
|-
| 932 || Harley-Davidson Brazil
|-
| 935 || Citroën Brazil
|-
| 936 || Peugeot Brazil
|-
| 937 || Dodge Dakota
|-
| 93C || Chevrolet SUV [Tracker] or pickup [Tornado, Montana, S10] (sold in Mexico, made in Brazil)
|-
| 93H || [[../Honda/VIN Codes|Honda]] Brazil car/SUV
|-
| 93K || Volvo Trucks Brazil
|-
| 93P || Volare
|-
| 93S || Navistar International
|-
| 93R || [[../Toyota/VIN Codes|Toyota]] Brazil
|-
| 93U || Audi Brazil 1999–2006
|-
| 93W || Fiat Ducato made by Iveco 2000–2016
|-
| 93V || Navistar International
|-
| 93X || Souza Ramos – Mitsubishi Motors / Suzuki Jimny
|-
| 93Y || Renault Brazil
|-
| 93Z || Iveco
|-
| 94D || Nissan Brazil
|-
| 94N || RWM Brazil
|-
| 94T || Troller Veículos Especiais
|-
| 95P || CAOA Hyundai & CAOA Chery
|-
| 95V || Dafra Motos (motorscooters from SYM) & Ducati, KTM, & MV Agusta assembled by Dafra
|-
| 95V || BMW motorcycles assembled by Dafra Motos 2009–2016
|-
| 95Z || Buell Motorcycle Company assembled by Harley-Davidson Brazil
|-
| 953 || VW Truck & Bus / MAN Truck & Bus
|-
| 96P || Kawasaki
|-
| 97N || Triumph Motorcycles Ltd.
|-
| 988 || Jeep, Ram [Rampage], and Fiat [Toro] (made at the Goiana plant)
|-
| 98M || BMW car/SUV
|-
| 98P || DAF Trucks
|-
| 98R || Chery
|-
| 99A || Audi 2016-
|-
| 99H || Shineray
|-
| 99J || Jaguar Land Rover
|-
| 99K || Haojue & Kymco assembled by JTZ Indústria e Comércio de Motos
|-
| 99L || BYD
|-
| 99Z || BMW Motorrad (Motorcycle assembled by BMW 2017-)
|-
| 9FB || Renault Colombia (Sofasa)
|-
| 9FC || Compañía Colombiana Automotriz S.A. (Mazda)
|-
| 9GA || [[../GM/VIN Codes|Chevrolet]] Colombia (GM Colmotores S.A.)
|-
| 9UJ || Chery assembled by Chery Socma S.A. (Uruguay)
|-
| 9UK || Lifan (Uruguay)
|-
| 9UT || Dongfeng trucks made by Nordex S.A.
|-
| 9UW || Kia made by Nordex S.A.
|-
| 9VC || Fiat made by Nordex S.A. (Scudo, 2025 Titano)
|-
| 9V7 || Citroen made by Nordex S.A. (Jumpy)
|-
| 9V8 || Peugeot made by Nordex S.A. (Expert)
|}
==References==
{{reflist}}
{{BookCat}}
sj7xm7u5dhvag2qsj00xpr82nbzb07p
Chess Opening Theory/1. e4/1...c5/2. Nf3/2...Nc6/3. Bb5
0
157434
4640496
4629685
2026-06-17T05:50:53Z
~2026-35372-14
3607467
4640496
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|name=Rossolimo attack
|eco=[[Chess/ECOB|B30]]
|parent=[[Chess Opening Theory/1. e4/1...c5|Sicilian defence]] → [[../|2...Nc6]]
}}
== 3. Bb5 · Rossolimo attack ==
This is the chief alternative 3. d4. White's bishop on b5 pressures Black's knight and therefore its control of the centre.
By prioritised the development of their kingside, White is ready to castle with plans of d3 (now that the light square bishop has been developed outside of the pawn chain) or d4 (supported by Re1 and c3). In general White is happy to trade the bishop for the knight if they can leave Black with doubled pawns: they may do so immediately or wait until provoked.
Black's main two options are '''3...g6''' and '''3...e6'''.
[[/3...g6|'''3...g6''']], the '''fianchetto variation''', intends ...Bg7. On g7, the bishop will help control the centre and make it more difficult for White to achieve d4. Typical ideas are 4. O-O Bg7 5. Re1 (supporting the e-pawn) Nf6, where both 6. c3 (intending 7. d4) and 6. e5 are threatened; and 4. Bxc6 dxc6, damaging Black's queenside structure but allowing the queen and bishop to access the centre, leading to 5. O-O Bg7 6. d3 Nf6; or the immediate 4. c3.
[[/3...e6|'''3...e6''']] is second most common reply. This opens the a3-f8 diagonal for the king's bishop, but the more immediate purpose is to prepare 4...Nge7 to defend the knight. After 4. O-O Nge7 5. Re1 a6 6. Bf1!, the knight supports a break in the centre, 6...d5 7. exd5 Nxd5. A sideline is to play 4. Bxc6 before Black has chance to get in ...Nge7.
'''3...d6''' is the third most common try. It transposes into a sideline of the Moscow attack otherwise reached after [[Chess Opening Theory/1. e4/1...c5/2. Nf3/2...d6/3. Bb5/3...Nc6|1. e4 c5 2. Nf3 d6 3. Bb5+ Nc6!?]]. The idea is to unpin the knight with ...Bd7: 4. O-O Bd7 5. Re1 a6 6. Bf1.
=== Other tries ===
'''3...Qb6!?''' intends to avoid doubled pawns by allowing the queen to recapture on c6.
'''3...Nf6''' (attacking e4) 4. Nc3 avoids lines where White plays c3. 4. d3?! Qa5+ 5. Nc3 Nd4 6. Ba4 b5 7. Bb3 Nxb3 8. cxb3 is hardly what any Rossolimo player would hope for.
Black sometimes tries the manoeuvre '''3...Nd4!?''' 4. Nxd4 cxd4. So long as White avoids 5. d3? Qa5+!, this is not so challenging.
'''3...g5?''' is a sharp gambit pioneered by Evgeny Egorov.<ref>[https://www.youtube.com/watch?v=ttBNG7eTbhU ''Silicon Road: Blitzing out Crazy Leela ideas on Lichess! 3.Bb5 Sicilian? White players be afraid!'']. GM Matthew Sadler. Youtube</ref>
'''3...Na5?!''' sidesteps the bishop on b5's vision and can lead to the '''San Francisco Gambit''' after 4. b4!?.
'''3...Nb8?''' is a humorous meme retreat named the '''Brooklyn Retreat Defence'''.
=== History ===
3. Bb5's earliest recorded appearance was in 1851 between Bird and Horwitz.<ref>[https://www.chessgames.com/perl/chessgame?gid=1001374 Bird v Horwitz, 1851. Chessgames.com]</ref>
The name '''Nyezhmetdinov-Rossolimo attack''' is for chess masters [[w:Nicolas Rossolimo|Nicolas Rossolimo]] and [[w:Rashid Nezhmetdinov|Rashid Nezhmetdinov]]. Rossolimo's first played it in 1948<ref name="salzburg">[https://www.chessgames.com/perl/chessgame?gid=1259461 Rossolimo v Romanenko, 1948. Chessgames.com]</ref> (see sample game) and Nezhmetdinov in 1956.<ref>[https://www.chessgames.com/perl/chessgame?gid=1460592 Nexhmetdinov v Boleslavsky, 1956. Chessgames.com]</ref>
2...Nc6 3. Bb5 is analogous to the Moscow attack, 2...d6 Bb5, which is also sometimes named after Rossolimo.
The Rossolimo is very popular at the highest levels of chess, where it is a way to avoid facing the sharp and theoretical Sveshnikov Sicilian, 1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 e5.
{{clear}}
== Sample game ==
{{Chess/board
| float = right
| frame = 1
| moves = 1. e4 c5 2. Nf3 Nc6 3. Bb5 g6 4. O-O Bg7 5. Re1 Nf6 6. Nc3 Nd4 7. e5 Ng8 8. d3 Nxb5 9. Nxb5 a6 10. Nd6+
| caption = Position after '''10. Nd6+!'''.
}}
'''Nicolas Rossolimo versus Ivan Romanenko. Salzburg, 1948.'''<ref name="salzburg" />
'''1. e4 c5 2. Nf3 Nc6 3. Bb5'''
The Rossolimo variation. This is the main alternative to 3. d4 and avoids facing the Sveshnikov and other ...Nc6 open Sicilians.
'''3...g6 4. O-O'''
3...g6 is still a main line today.
4. Bxc6 is a worthy alternative.
'''4...Bg7 5. Re1 Nf6 6. Nc3 Nd4?! 7. e5!'''
Black was perhaps hoping for 7. Nxd4? cxd4 8. Nd5 (8. Ne2? Nxe4 9. Nxd4? Nd6!, attacks the bishop and discovers an attack on the knight, 10. Qg4 Qb6!{{chess/not|---}}) Nxd5 9. exd5 O-O 10. d3{{chess/not|-}}.
'''7...Ng8 8. d3 Nxb5 9. Nxb5 a6 10. Nd6+!'''
It's difficult for Black to find a move that doesn't allow Nd6+. 9...h6 was an option, denying White the g5 square for their bishop.
'''10...exd6?'''
10...Kf8 11. Ne4 allows the game to continue, though the damage to Black's position is done. The text move allows the e-file to open.
'''11. Bg5 Qa5 12. exd6+ Kf8'''
The inclusion of 11. Bg5 to drive the queen from defence of the king is important. 11. exd6+?? Kf8 and White can't continue the attack: 12. Bg5? now is met by ...Bf6, previously prevented by the pawn on d5.
'''13. Re8+! Kxe8'''
The rook sacrifice keeps the initiative, though the engine prefers 13. Qe2, allowing Black to move their bishop and create a flight square for their king.
'''14. Qe2+ Kf8'''
14...Nd7 15. Qxd7# of course.
'''15. Be7+ Ke8 16. Bd8+ Kxd8 17. Ng5 1-0'''
Black can delay but not prevent Nxf7#. 17...Be5 18. Qxe5 Qe1+ 19. Rxe1 any move 20. Nxf7#. Black resigns.
==Theory table==
{{ChessTable}}
{{Chess/theory table
|line1=3. ... g6 4. O-O Bg7 5. Re1 Nf6 6. e5 Nd5 7. Nc3 Nc7 8. Bxc6 dxc6 9. Ne4 Ne6 10. d3 O-O
|eval1={{chess/not|+}}
|name1=Nyezhmetdinov-Rossolimo Attack
|line2=3. ... ... 4. Bxc6 dxc6 5. d3 Bg7 6. h3 Nf6 7. Nc3 O-O 8. Be3 b6 9. Qd2 e5 10. Bh6 Qd6
|eval2={{chess/not|+}}
|line3=3. ... e6 4. O-O Nge7 5. Re1 a6 6. Bf1 d5 7. exd5 Nxd5 8. d4 Nf6
|eval3={{chess/not|+}}
|line4=3. ... ... 4. Bxc6 bxc6 5. d3 Ne7
|eval4={{chess/not|+}}
|line5=3. ... d6 4. O-O Bd7 5. Re1 Nf6 6. c3 a6 7. Bf1 Bg4
|eval5={{chess/not|+}}
|line6=3. ... a6 4. Bxc6 dxc6 5. O-O
}}
{{ChessMid}}
==References==
{{reflist}}
=== See also ===
{{Chess Opening Theory/Footer}}
op8t56c7awd41ie1qaj5iff1e6hh3tl
FFMPEG An Intermediate Guide/MPEG
0
213490
4640480
4215254
2026-06-17T02:44:48Z
PieWriter
3546965
from wikipedia
4640480
wikitext
text/x-wiki
FFMPEG: Encoding, Decoding<br/>
Full Name: {{w|Moving Picture Experts Group|'''M'''oving '''P'''icture '''E'''xperts '''G'''roup}}<br/>
Web sites: [https://www.mpeg.org/ Motion Picture Experts Home Page]<br/>
Description: MPEG is one of the most standard and widely used formats. Its been produced in a number of different iterations and used throughout the film industry from capture, storage to delivery.
== Background ==
The Moving Pictures Experts Group, is the fore most group on defining and implementing video standards through out the film industry. Operating since 1988 and shaping the development of the entire industry.
MPEG's can be used for all levels of use but understanding how the different formats work will help you decide which is best suited for you needs. Please read through usages to help you decided which are the best settings for you usage.
The basic premise of the Moving Picture Expert Group, is that encoding is done by a few powerful machines and decoding will be done by many weaker systems. So depending on the setting you use, it can be processor intense to encode, but should be fairly light to decode.
== FFMPEG Guide ==
== Usages ==
=== MPEG1 ===
MPEG1 is a low bit rate format, designed to be used on CD running at a rate of less than 1.5Mb/s. Comparative to MPEG2, MPEG1 will generally out perform MPEG2 at lower bit rates, though MPEG4 should out perform MPEG1.
There is no audio encoder for MPEG 1 audio, although there is a decoder. For audio simply use MPEG 2 (mp2) audio as this will work with most high end encoders.
'''For a single pass mpeg1'''
ffmpeg -i "input_file" -vcodec mpeg1video -acodec mp2 "output_file.mpeg"
'''For a two pass mpeg1 encoding'''
ffmpeg -i "input_video" -pass 1 -f mpeg1video -an -passlogfile log_file "output_file.mpeg"
ffmpeg -i "input_video" -pass 2 -f mpeg1video -acodec mp2 -passlogfile log_file "output_file.mpeg"
'''For an optimized two pass mpeg1 encoding'''
ffmpeg -i "input_video" -pass 1 -f mpeg1video -b 750000 -s 320x240 -an -passlogfile log_file "output_file.mpeg"
ffmpeg -i "input_video" -pass 2 -f mpeg1video -b 750000 -s 320x240 -acodec mp2 -ab 128000 -passlogfile log_file "output_file.mpeg"
=== MPEG2 ===
'''SD Normal Quality'''
ffmpeg -i "input_video" -c:v mpeg2video -b:v 4M -refs 1 -bf 0 -c:a ac3 -b:a 192k -async 1 "output.mpg"
'''SD High Quality'''
ffmpeg -i "input_video" -c:v mpeg2video -b:v 8M -refs 1 -bf 0 -c:a ac3 -b:a 384k -async 1 "output.mpg"
'''SD Stream'''
ffmpeg -i "input_video" -c:v mpeg2video -b:v 8M -refs 1 -bf 0 -c:a ac3 -b:a 192k -async 1 "output.ts"
'''HD Stream'''
ffmpeg -i "input_video" -c:v mpeg2video -b:v 20M -refs 1 -bf 0 -c:a ac3 -b:a 384k -async 1 "output.ts"
=== MP3 ===
=== MP4 ===
# ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320×240 destination.mp4
# ffmpeg -v 0 -i in.flv -y -acodec libfaac -ar 22050 -ab 64k -r 25 -vb 384000 -f mp4 -vcodec mpeg4 out.mp4
# ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200 -ab 12200 -ac 1 -ar 8000 destination.3gp
==== SD MPEG4 Part 2 ====
ffmpeg -i "input_video" -c:v mpeg4 -q:v 3 -c:a mp3 -ab 128k -async 1 "output.mp4"
ffmpeg -i "input_video" -c:v mpeg4 -b:v 2000k -c:a mp3 -ab 128k -async 1 "output.mp4"
==== SD MPEG4 XviD/DivX ====
ffmpeg -i "input_video" -c:v libxvid -q:v 3 -c:a mp3 -ab 128k -async 1 "output.mp4"
ffmpeg -i "input_video" -c:v libxvid -b:v 2000k -c:a mp3 -ab 128k -async 1 "output.mp4"
=== H264 ===
==== SD Quality-based H264 ====
ffmpeg -i "input_video" -c:v h264 -crf 18 -preset slow -profile high -strict -1 -async 1 "output.mp4"
==== SD Contant Bitrate H264 ====
ffmpeg -i "input_video" -c:v h264 -b:v 2000k -preset slow -profile high -strict -1 -async 1 "output.mp4"
=== H265 ===
Additional examples and details of the different arguments and codecs can be found on the FFMPEG homepage.
=== Universal Delivery ===
Common file types: .mpg, .mp4, .ts, .mkv
=== CD ===
VCD and SVCD
=== DVD ===
DVD-Video are the most used format for final delivery of footage. This section is only looking at standard DVD-Video as a delivery format.
Some useful information to know. DVD decodes tend to work up to a maximum of about 8 Mb/s and a minimum of 1.5 Mb/s (assuming MPEG2, MPEG1 can go smaller, though we advise you don't use it). Constant bit rate is faster to encode to but variable bit rate will give to much better size and possibly quality. Please see the section on [[FFMPEG An Intermediate Guide/General#Variable vs. Constant Bit Rate|variable bit rate]].
For older DVD players you should not go above 6 Mb/s, though the rule of thumb is unless its specifically asked for, 8Mb/s should work 90% of the time and buy you grandma a new DVD play.
==== Constant bit rate DVDs ====
Best quality: 8 Mb/s, 55 minutes of video
* 1 Hour: 7350 Kb/s
* 2 Hours: 4550 Kb/s
(these are guide lines you may need to adjust to the length of your footage.)
You should avoid going below 4500 kb/s as the quality become awful.
* Highest quality: 8 Mb/s
* Average quality: 5 Mb/s – 7 Mb/s
* Lowest quality: 5 Mb/s
* Poor quality: 4 Mb/s
Final encoded content must fit either a 4.7 GB single-sided DVD or 8.4 GB double-sided DVD.
==== Variable Bit Rate DVDs ====
=== BLU-RAY and HDDVD ===
25Mb/s - 60Mb/s
=== Broadcast ===
15Mb/s
=== Long Term, High Quality Storage ===
50 - 880Mb/s
=== Streaming ===
It's hard to provide an example table as many sources vary their bitrate and quality based on video resolution and server bandwidth.
=== Interlaced Footage ===
To deinterlace video and convert it to progressive, add the -deinterlace option if you know its interlaced. Otherwise use the -vf yadif option for safety.
Also note that converting from interlaced to progressive is destructive on your video content and can cause loss of quality or introduce additional artifacts during conversion.
==Useful links==
* http://ffmpeg.org/documentation.html
* [http://www.chiariglione.org/mpeg/ Motion Picture Experts Home Page]
{{BookCat}}
4tiuvst4j6ja6dwpxq46ws2my8n1knz
User:Tommy Kronkvist
2
222668
4640504
4640348
2026-06-17T09:24:26Z
Tommy Kronkvist
107268
User statistics.
4640504
wikitext
text/x-wiki
<div style="margin: 0 0 1em 0;">{{userpage}}</div>
{{Userboxtop|toptext=Babel:}}
{{user language|sv|N}}{{user language|en|4}}{{user language|de|2}}{{user language|la|1}}
{{userboxbreak|toptext=WikiProjects:}}
{{User Chess}}
{{Userboxbottom}}
[[File:Sorbus torminalis Trunk and canopy.jpg|thumb|200px|left]]<br />
Most of my wiki contributions are made to [[:species:Main Page|Wikispecies]] where I'm an administrator, bureaucrat and interface admin,<small><sup>[https://species.wikimedia.org/w/index.php?title=Special:ListUsers&limit=1&username=Tommy_Kronkvist (verify)]</sup></small> as administrator and interface ditto at the Swedish version of [[wikivoyage:sv:Huvudsida|Wikivoyage]]<small><sup>(<span class="plainlinks">[https://sv.wikivoyage.org/w/index.php?title=Special:ListUsers&limit=1&username=Tommy_Kronkvist verify]</span>)</sup></small> and to the Swedish Wikimedia Chapter [[WMSE:|Wikimedia Sverige]], where I'm also an admin.<small><sup>(<span class="plainlinks">[https://se.wikimedia.org/w/index.php?title=Special:Användare&limit=1&username=Tommy_Kronkvist verify]</span>)</sup></small>
I've made a total of [[:meta:Special:CentralAuth/Tommy_Kronkvist|393,700 edits]] to 153 different Wikimedia sister projects, since August 2008 when I first registered my user account. (Data per June 17, 2026.)
Swedish is my mother tongue – even though I was born in Finland – but I feel fairly comfortable speaking and writing English and some German as well. Odd as it may seem, unfortunately I can't speak any Finnish.
My family name consists of two parts: ''kron'' – a short form of the Swedish word ''krona'' meaning 'crown', as in coronation crown or tree crown – and ''kvist'', meaning 'bough' or 'twig'. Hence the name ''Kronkvist'' refers to a twig in the canopy of a forest. I'm the fourth generation of Kronkvist's. Before that our family name was ''Mattus'', dating back from at least 1637. I've lived all over Sweden (for example in Stockholm and in the Gothenburg area) but nowadays reside in Uppsala, the fourth biggest city and former capital of Sweden.
gveg0pgx1cy5l5ca8wh06qg7yk4tq1b
Aros/User/Applications
0
237399
4640450
4640376
2026-06-16T14:44:26Z
Jeff1138
301139
4640450
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-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, 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 Viewing and downloading videos
|<!--AROS-->Odyssey 2.0 can show Youtube webpage, [https://blog.alb42.de/amitube/ Amitube],
|[https://blog.alb42.de/amitube/ Amitube], [https://github.com/YePpHa/YouTubeCenter/releases or this one],
|[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|[ Wayfarer], [https://blog.alb42.de/amitube/ Amitube],Odyssey (OWB), [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[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-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--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-->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, 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-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[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-->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], [], [],
|<!--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 (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--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], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--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*, 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
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--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-->
|<!--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-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--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]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, 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 and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--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
|<!--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-->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-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--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*, Turbotext, 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]
|<!--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], [], 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,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--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,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[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-MS Opus Key], 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-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|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-->
|<!--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-->
|-
|<!--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-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--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 and Edit Individual Video 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*], 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 Live 2D models with Cubism type editor
<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 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], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [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,
|-
|Application Installer
|<!--AROS-->[], [ 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-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--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-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--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 Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==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-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--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-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--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,
|-
|}
==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-->Fractals
|<!--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-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--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-->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], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur 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://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-->
|<!--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.lasernet.plus.com/ Asp], [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], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--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-->
|<!--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-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],
|<!--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 ], [],
|<!--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],
|<!--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, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--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], [], [],
|<!--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], [],
|<!--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], [],
|<!--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], [], [],
|<!--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], [],
|<!--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-->
|<!--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], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--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-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--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], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--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 Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--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.
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.
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]
===E-mail===
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.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====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 extention). 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}}
d7ogpwzo32lqcydzzrrsky7se4ki9mz
4640451
4640450
2026-06-16T14:45:08Z
Jeff1138
301139
4640451
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-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, 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 Viewing and downloading videos
|<!--AROS-->Odyssey 2.0 can show Youtube webpage, [https://blog.alb42.de/amitube/ Amitube],
|[https://blog.alb42.de/amitube/ Amitube], [https://github.com/YePpHa/YouTubeCenter/releases or this one],
|[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|[ Wayfarer], [https://blog.alb42.de/amitube/ Amitube],Odyssey (OWB), [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[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-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--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-->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, 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-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[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-->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], [], [],
|<!--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 (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--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], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--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*, 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
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--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-->
|<!--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-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--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]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, 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 and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--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
|<!--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-->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-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--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]
|<!--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], [], 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,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--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,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[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-MS Opus Key], 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-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|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-->
|<!--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-->
|-
|<!--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-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--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 and Edit Individual Video 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*], 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 Live 2D models with Cubism type editor
<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 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], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [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,
|-
|Application Installer
|<!--AROS-->[], [ 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-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--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-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--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 Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==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-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--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-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--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,
|-
|}
==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-->Fractals
|<!--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-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--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-->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], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur 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://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-->
|<!--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.lasernet.plus.com/ Asp], [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], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--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-->
|<!--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-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],
|<!--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 ], [],
|<!--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],
|<!--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, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--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], [], [],
|<!--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], [],
|<!--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], [],
|<!--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], [], [],
|<!--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], [],
|<!--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-->
|<!--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], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--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-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--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], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--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 Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--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.
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.
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]
===E-mail===
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.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====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 extention). 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}}
rjfgk8navlujv8elfge30xispjuaenn
4640454
4640451
2026-06-16T16:34:03Z
Jeff1138
301139
4640454
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-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, 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
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], ,
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ Wayfarer], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[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-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--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-->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, 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-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[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-->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], [], [],
|<!--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 (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--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], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--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*, 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
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--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-->
|<!--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-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--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]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, 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 and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--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
|<!--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-->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-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--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]
|<!--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], [], 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,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--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,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[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-MS Opus Key], 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-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|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-->
|<!--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-->
|-
|<!--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-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--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 and Edit Individual Video 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*], 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 Live 2D models with Cubism type editor
<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 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], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [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,
|-
|Application Installer
|<!--AROS-->[], [ 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-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--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-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--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 Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==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-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--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-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--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,
|-
|}
==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-->Fractals
|<!--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-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--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-->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], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur 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://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-->
|<!--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.lasernet.plus.com/ Asp], [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], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--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-->
|<!--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-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],
|<!--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 ], [],
|<!--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],
|<!--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, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--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], [], [],
|<!--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], [],
|<!--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], [],
|<!--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], [], [],
|<!--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], [],
|<!--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-->
|<!--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], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--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-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--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], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--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 Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--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.
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.
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]
===E-mail===
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.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====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 extention). 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}}
hgmiy88qsxsp34jv8ixmdsm0wq0hf3b
4640455
4640454
2026-06-16T16:47:23Z
Jeff1138
301139
4640455
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-->[http://archives.arosworld.org/index.php?function=browse&cat=network/browser Odyssey 2.0], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0],
|<!--Amiga OS-->[https://aminet.net/comm/www Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, 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], [],
|<!--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-->E-mailing SMTP POP3 IMAP based
|<!--AROS-->[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-->[http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC
|<!--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-->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, 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-->Plugin included with Dopus Magellan, MarranoFTP,
|<!--Amiga OS-->[http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP,
|<!--AmigaOS4-->
|<!--MorphOS-->[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-->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], [], [],
|<!--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 (either ntp or websites) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ NIST], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync],
|<!--Amiga OS-->ntpsync
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--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], [https://sourceforge.net/projects/zunetools/files/ ZunePaint], [http://sourceforge.net/projects/zunetools/files/ ZuneView],
|<!--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*, 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
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--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-->
|<!--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-->Word-processing
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [https://finalwriter.godaddysites.com/ Final Writer 7*], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [ ],
|<!--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]*, MediaPoint, PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://sdb.freeforums.org/ SDB], [http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, 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 and editing digital signatures
|<!--AROS-->[http://sourceforge.net/projects/arospdf/ ArosPDF via splash], [https://github.com/wattoc/AROS-vpdf vpdf wip],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers and Ghostscript internal, [ GutenPrint],
|<!--Amiga OS-->[http://www.irseesoft.de/tp_what.htm TurboPrint]*
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included,
|-
|<!--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
|<!--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-->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-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*
|<!--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]
|<!--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], [], 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,
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[ Samplitude Opus Key], [https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX],
|<!--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,
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and notes manuscript
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes for AROS], [ Audio Evolution], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction 2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator],
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [http://os4depot.net/index.php?function=browse&cat=audio/edit Horny], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[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-MS Opus Key], 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-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|[https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [http://www.estamos.de/makecd/#CurrentVersion MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|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-->
|<!--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-->
|-
|<!--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-->Mplayer,
|<!--Amiga OS-->
|<!--AmigaOS4-->Mplayer, Gnash, Tubexx
|<!--MorphOS-->Mplayer, OWB, Tubexx
|-
|<!--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 and Edit Individual Video 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*], 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 Live 2D models with Cubism type editor
<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 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], [ ],
|<!--Amiga OS-->DOpus2, DOpus 4, [http://sourceforge.net/projects/dopus5allamigas/files/?source=navbar DOpus Magellan DOpus5], ClassAction, FileMaster, [http://www.amiga.org/forums/showthread.php?t=4897 DirWork 2]*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, DOpus5, Filer, AmiDisk
|<!--MorphOS-->DOpus4, DOpus5
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->md5 (works in linux compiling shell), [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,
|-
|Application Installer
|<!--AROS-->[], [ 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-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [HDToolBox]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS--> Quarterback Tools, [ ], [ ], [ ],
|<!--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-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->C/C++ IDE
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], Annotate, Murks,
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Annotate,
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, Anontate,
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html ], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/ ],
|<!--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 Editors
|<!--AROS-->FlexCat
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==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-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--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-->[http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator],
|<!--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,
|-
|}
==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-->Fractals
|<!--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-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--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-->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], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro], [http://aminet.net/package/dev/basic/ace24dist ACE Basic],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->HAM amateur 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://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-->
|<!--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.lasernet.plus.com/ Asp], [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], [], [http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--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-->
|<!--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-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],
|<!--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 ], [],
|<!--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],
|<!--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, [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray]
|-
|<!--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], [], [],
|<!--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], [],
|<!--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], [],
|<!--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], [], [],
|<!--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], [],
|<!--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-->
|<!--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], [],
|<!--AROS-->
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park,
|<!--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-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/Kirilllive/tuesday-js Tuesday JS], [ Lua + LOVE], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [], [],
|<!--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], [], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->
|<!--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 Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games
|<!--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.
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.
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]
===E-mail===
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.
Free royalty pictures, [www.freeimages.com ], [http://imageshack.us/ ], [http://photobucket.com/ ], [http://rawpixels.net/], [], [], [],
====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 extention). 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}}
j9vp3iivc6x9alyt9ogc9j4g24upas0
User:Gleb713/An Answer Key to Collar's and Daniell's First Year Latin
2
397633
4640447
4640012
2026-06-16T14:02:30Z
Rcmcola
3394483
/* § 337, p. 132 */
4640447
wikitext
text/x-wiki
This wikibook is an answer key to the revised 1918 edition of Collar's and Daniell's ''First Year Latin''. There are two copies of this edition in the Internet Archive: [https://archive.org/details/collaranddaniel00jenkgoog] and [https://archive.org/details/collardaniellsfi00collrich another copy]).
=== About References ===
The references are to the paragraph numbers (§ ''N'') and the original page numbers (p. ''N'') of ''First Year Latin''.
=== Abbreviations ===
{|
|-
| ''acc'' || accusative
|-
| ''act'' || active voice
|-
| ''abl'' || the ablative case
|-
| ''dat'' || the dative case
|-
| ''gen'' || the genitive case
|-
| ''imp'' || the imperative mood
|-
| ''imperf'' || the imperfect tense
|-
| ''ind'' || the indicative mood
|-
| ''inf'' || the infinitive mood
|-
| ''nom'' || the nominative case
|-
| ''pass'' || the passive voice
|-
| ''perf'' || the perfect tense
|-
| ''pl'' || the plural
|-
| ''pluperf'' || the pluperfect tense
|-
| ''sg'' || the singular
|-
| ''subj'' || the subjunctive mood
|}
=== About Prose Translations ===
All prose translations have been kept as literal as possible. This should not be taken as a model to emulate. Quite contrary, one should hardly ever aim at a literal translation instead of a fluent one.
Answers marked with a * may be written with a little more liberty by a different pupil, though are still more-or-less literal translations.
== Exercises ==
=== § 30, p. 25 ===
# A sailor is singing.
# Sailors are singing.
# A farmer is working.
# Farmers are working.
# A girl swims.
# Girls swim.
# Cornelia draws near.
# Are the girls drawing near? (In a boys-only school this might have stirred the pupils somewhat.)
# Cornelia and the girls are singing.
# Julia works and sings.
# What is approaching?
# Are the sailors swimming?
# Who is walking?
=== § 31, p. 25 ===
# Nauta natat.
# Puellae cantant.
# Quis appropinquat?
# Appropinguantne nautae?
# Cantatne Cornēlia?
# Cornēlia et Iūlia ambulant et cantant.
# Puella cantat, et agricola labōrat.
# Nautae et agricolae labōrant.
=== § 36, p. 27 ===
# Galba has a trumpet.
# Does Galba have trumpets?
# Girls praise Cornelia and Julia.
# A sailor sees a letter.
# Galba calls together the sailors.
# Who sees Galba?
# Whom Galba is seeing?
# The farmer now calls the girls together.
# Do the sailors see land?
# Girls like Cornelia.
=== § 37, p. 27 ===
# Quis appropinquat?
# Nauta et Galba appropinquant.
# Quid agricola habet?
# Agricola terram habet.
# Laudatne Galba agricolae?
# Puella aquam et terram videt.
# Nautae agricolās convocant.
# Iūlia litterās nunc habet.
=== § 41, p. 29 ===
# She walks, calls together, sings.
# Are they calling together? Singing? Praising?
# You (sg.) swim, work, walk.
# We like, draw near, walk.
# You (pl.) are calling together, are singing, are liking.
# They like, she is giving, we are praising.
# Whom are you looking at?
# I praise the inhabitants.
# You (pl.) often praise Julia.
# But we are praising the letter.
# What are you (pl.) giving now?
=== § 42, p. 29 ===
# Natō, natat, natō.
# Labōrāsne/labōrātisne? cantāmus, laudatne?
# Appropinquant, dant, ambulās/ambulātis.
# Laudās/laudātis, natant, labōrat.
# Incolās convocāmus, sed nautās convocātis.
# Puellae aquam nunc spectant.
=== § 46, p. 31 ===
# She delights, we are routing, you set free.
# We are waiting, they carry, you delight.
# We delight, you (pl.) rout, they are setting free.
# Is she freeing? I am freeing, we are carrying.
# They are setting free the farmers' daughters.
# The poet's fortune pleases the queen.
# We are looking at the woman's daughters. (Quite possibly a true story from a boy school.)
# Does Galba's ''daughter'' expect a letter?
# Even the trumpets of the sailors put the inhabitants to flight.
# Whose letter are you carrying?
=== § 47, p. 31 ===
# Nautās rēgīnae convocō.
# Fīliae poetārum terram amant.
# Cuius fīliam liberās/liberātis?
# Laudantne fīliās Galbae?
# Agricolās nunc expectāmus.
# Quem fortūna agricolārum dēlectat?
=== § 52, p. 33 ===
# You have money.
# I teach Julia.
# You often advice the inhabitants.
# Do they frighten the girls?
# Whom are they seeing?
# We advice and we teach.
# What do we have?
# I now see a booty.
# You (pl.) see a trumpet.
# Are you (pl.) warning ''the farmers''?
# They have a letter.
# Julia teaches the poet's daughters.
# The pirates have even the farmers' money.
# The daughters' fate pleases the woman. (Obviously they got married off to better men than the boys of this school became.)
# Why do you warn Julia and Cornelia?
# Whom do you teach and advice?
# The women praise the girls because they work. (Hopefully nothing beyond the chaste exercise of weaving, though.)
=== § 53, p. 33 ===
# Monent.
# Habent.
# Moneō.
# Terrēs/terrētis.
# Vidēmus.
# Puellāsne docet?
# Pīrātamne Iūlia et Cornēlia spectant?
# Cūr pīrātae incolās terrent?
# Pecūniam et praedam habent.
# Fēminam laudāmus quod puellās docet.
# Quis vidēs/vidētis? Quid spectās/spectātis?
=== § 61, p. 35 ===
# A farmer shows the road to a woman.
# Cornelia tells the story even to the girls.
# We dwell on an island.
# Who shows the island to the poets?
# Why are the pirates remaining in the water?
# To whom are you giving the money?
# The sailors show the booty to the farmers.
# The inhabitants are approaching on the road and they are looking at the queen.
# They like the mistress because she tells stories.
=== § 62, p. 35 ===
# Cuī fēminam dēmonstrās/dēmonstrātis?
# Iūliae letterās dēmonstrō.
# Rēgīnae fābulās narrant.
# Fīlia Galbae nautīs pecūniam dat.
# Habitantne pīrātae in īnsulā?
# Cuius fīliae in viam appropinquant?
=== § 66, p. 37 ===
# Why are the poets remaining in the woods?
# To whom are you telling about the queen's victory?
# I see Julia and Cornelia in the portal.
# In Germany and Greece they often assemble the farmers.
# Do they live in the province?
# The sailors' victory frightens the farmers.
# The girls' diligence pleases the woman.
# In the fight we put to flight the pirates of Italy.
# Galba tells about the flight of the pirates.
=== § 67, p. 37 ===
# In prōvinciā Graeciae incolō.
# Silvae prōvinciārum poetīs dēlectant.
# Fīliae Iūliae pecūniam dat.
# Cuī aquam dās/dātis?
# Cuius dīligentiam laudās/laudātis?
# In viā exspectant et silvās spectant.
=== § 75, p. 41 ===
# I see a town.
# We are seeing towns.
# Is the master warning a slave?
# The tribune is looking at a horse.
# The masters' horses delight the slaves.
# Marcus is narrating a story to a friend.
# The masters give the spoils friends.
# We often call together the friends in the town.
# Slaves are approaching, and they are carrying grain and water.
=== § 76, p. 41 ===
# Quis equum tribūnī habet?
# Servī dōna dominōrum nunc habent.
# Amicōsne in hortō habēs/habētis?
# Servus frūmentum tribūnī portat.
# Cuius dōnum Marcō dēmonstrant?
# Oppidum et hortōs oppidī vidēmus.
=== § 83, p. 43 ===
# We are looking at and also approving of the large horses.
# The tribune gives a javelin to a good friend.
# The sailor's welcome gift delights Julia.
# A strong sailor has strong oars.
# A girl sees good slaves.
# Great winds do not frighten sailors.
# Where do you see the strong farmers' grain?
# They are carrying the grain in a large cart.
# The pirates are frightening the farmers because they have javelins.
=== § 84, p. 43 ===
# Carrum magnum habeō.
# Dominus bonus servum bonum habet.
# Atque servō bonō dōnum grātum dat.
# Probatne servus dōnum?
# Magnō in oppidō Graeciae nōn habitant.
# Nautās bonōs nōn convocat.
# Ubi silvam magnam vidēs/vidētis?
=== § 91, p. 45 ===
# Galba is a farmer.
# Galba is strong.
# Julia and Cornelia are my daughters.
# My daughter is small.
# Is your town large?
# Britain is an island of Europe.
# Vesta was a Roman goddess.
# The carts of the Romans were good and strong.
# War is not welcome.
# Wars aren't welcome.
# Greece is a small country of Europe.
# We are friends of the tribune.
# In the large town we see wide roads.
=== § 92, p. 45 ===
# Viae oppidī sunt longae.
# Viae Rōmae nōn erant lātae.
# Viae Britanniae sunt lātae et longae.
# Ubi es/estis?
# Dōna nova tribūnī sunt grāta.
# Deōs laudāmus quod dōna dant.
# Rōmānī sumus sed in Britanniā habitāmus.
=== § 101, p. 49 ===
# The sons of the men are in Britain.
# The men are allies.
# I am a messenger of the allies.
# We are waiting for the small boys, sons of the tribune.
# The boys have Marcus' sword and javelin.
# Who shows the way to the man?
# The battle is long, and the allies are waiting for help.
# A man and sons of the messenger are toiling in the field.
# Why are you giving rewards to the men?
=== § 102, p. 49 ===
# Fīlius nūntī est puer parvus.
# Gladium tuum vidēmus sed pilum tuum nōn habēmus.
# Puerōs parvōs et fēminam terrent.
# Virī sociōs fugant.
# Ubi nūntiī habitant?
# Gladium fīlī meī habeō.
# Bella et proelia Rōmānōs dēlectant.
=== § 105, p. 50 ===
# I see horses in Marcus', friend's, field.
# A wretched messenger is telling a miserable story of the allies' flight.
# They are giving rewards to your friends.
# Money, Cornelia's gift, is pleasing to our son.
# We are free men in a free town.
# The Greek goddesses were many.
# Our associate is miserable because he has no sword.
# They are subduing the Romans in a battle.
# Are you calling your son?
# A miserable slave prepares food for a master.
A bonus question about the translation of 10. for the boys in the back row: Are all slaves miserable because they prepare food for their masters or is this particular slave miserable because he's preparing food for his master or is this particular slave miserable because he's preparing food for a master not his own?
=== § 106, p. 51 ===
# Amīcī nostrī, Mārcus et Galba, sunt miserī.
# Multī carrī in viīs oppidī nostrī sunt.
# Fīliōs miserōs nūntiōrum convocat.
# Ubi equum tuum vides?
# Ventī nautās nōn terrent.
# Fīliī virōrum līberōrum sumus.
# Pīlum dōnum āmicī habeō.
=== § 113, p. 53 ===
# She is, she was, she will be.
# They are, they were, they will be.
# We are, we were, we will be.
# I am, I was, I will be.
# You (sg.) are, you (sg.) were, you (sg.) will be.
# You (pl.) are, you (pl.) were, you (pl.) will be.
# Certainly we were hostile towards Marcus, your son.
# Next to the town were many fields.
# Injuries of the allies were many.
# I see an island near to the (main)land.
# The winds will not be pleasing to the sailors.
# Farmers were not fit for a long war.
# Meanwhile, we will be favourable to your sons.
# Swords and javelins are suitable for a battle.
=== § 114, p. 53 ===
# Sum, sumus.
# Ubi eramus? In oppidō eram.
# Erō, erimus.
# Estne tribūnus? Sociī sunt.
# Interim vir līber eris.
# Oppida nostra Graeciae propinqua sunt.
# Virī in oppidīs nostrīs Rōmae inimīcī sunt.
# Erit magnum proelium in Britanniā.
# Librī Mārcō amicō meō grātī certē erunt.
=== § 124, p. 57 ===
# They were showing, she was preparing, you (pl.) were filling.
# I was telling, you (sg.) were seeing, we were dwelling.
# You (sg.) were overcoming, you (pl.) were having, she was approving.
# You (sg.) were singing, I was freeing, you (pl.) were staying.
# I was frightening, she was calling, you (pl). were delighting.
# I was calling together the lieutenants.
# Farmers were bringing grain and food in small carts.
# Meanwhile they were fighting with swords in forests.
# We were equipping our allies with shields.
# I was calling the lieutenant, my friend.
# They were subduing the tribune and the lieutenant in the fight with javelins.
# Your gifts were pleasing to the gods.
# The village was next to the sea.
=== § 125, p. 57 ===
# Ambulābam sed in agrō exspectābās.
# Armābāmus, manēbant.
# Appropinquābātis et pugnābant.
# In vicō labōrābant.
# Fābulīs et librīs docēbāmus.
# Amicōs vestrōs gladiīs vestriīs liberābātis.
# Cibus Helvetiīs dēfessīs grātus erat.
# Virī pīlīs longīs pugnābant.
# Lēgātus vīcum cibō et frūmentō complēbat.
=== § 130, p. 59 ===
# They will call, they will fill, they will hasten.
# Is she arming? She will overcome, we will keep.
# Will they stay? We will show, I will frighten.
# You (sg.) will work, you (pl.) will teach, I will dwell.
# Where to is the strong farmer hurrying?
# A farmer and boys will hurry to the fields.
# They toil in the fields with great zeal.
# They will carry the grain into the village with care.
# You (pl.) will build boats with great diligence.
=== § 131, p. 59 ===
# Aedificābis.
# Properābit.
# Quis nōn manēbit?
# Tenēbitis.
# Virōs aegrōs magnō cum cūrā portābimus.
# Quō lēgātus properābit?
# In Graeciam properābit atque incolās armābit.
# Ubi amīcī nostrī cum studiō pugnābunt?
# Virī nāvigia cum dīligentiā complēbant.
=== § 135, p. 61 ===
# Has she called? She has called together, she has subdued.
# They have fought, they have expected, they have worked.
# We have hastened, we have built, we have equipped.
# Did I praise? You (sg.) have called, you (pl.) have hastened.
# She has brought, she has delighted, she has given.
=== § 136, p. 61 ===
# Laudāvistī/-istis, dēmonstrāvistī/-istis, narrāvistī/-istis.
# Dedī, portāvī, liberāvī.
# Probāvērunt, cantāvērunt, natāvērunt.
# Dedimus, habitāvimus, dēmonstrāvimus.
=== § 140, p. 62 ===
# She has warned, they have warned, she has taught.
# They have taught, she has had, they have had.
# You (sg.) have frightened, you (pl.) have frightened, have you (sg.) kept?
# I have seen, have they seen? We have stayed.
# She has kept, they have kept, they have frightened.
=== § 141, p. 62 ===
# Complēvī, vīdistī, tenuimus.
# Terruit, habuit, complēvērunt.
# Mānsit, docuī, monuistis.
=== § 145, p. 63 ===
# The boys have filled our cart with grain.
# They have carried a sick girl with care.
# I have seen the shields and swords of the captives in front of the gates.
# The place was not suitable for a battle.
# The lieutenant has hurried to Germany with many men.
# He will show the cause of the war.
# I have spent the winter in Greece with your friends.
# With great risk they have stayed.
=== § 146, p. 63 ===
# Gladiī et pīla captivōs terruērunt.
# Longō in bellō cum tribūnō pugnāvērunt.
# Fēminae in Italiā hiemābant.
# Quis causam bellī lēgātō narrābit?
# Locum armīs complēvērunt.
# Rōmānī cum sociīs prō Rōmā pugnāvērunt.
=== § 148/b, p. 64 ===
{| class="wikitable"
|-
| id dōnum || is nūntius || ea patria
|-
| eius dōnī || eius nūntiī || eius patriae
|-
| eī dōnō || eī nūntiō || eī patriae
|-
| id dōnum || eum nūntium || eam patriam
|-
| eō dōnō || eō nūntiō || eā patriā
|-
| ea dōna || iī nūntiī || eae patriae
|-
| eōrum dōnōrum || eōrum nūntiōrum || eārum patriārum
|-
| iīs dōnīs || iīs nūntiīs || iīs patriīs
|-
| ea dōna || eōs nūntiōs || eās patriās
|-
| iīs dōnīs || iīs nūntiīs || iīs patriīs
|}
=== § 150, p. 65 ===
# I have seen that shield.
# That sword is mine.
# That battle was long.
# I will fight with this sword.
# She has given food for that prisoner.
# That was yours.
# He was showing the danger of those lieutenants.
# We have been in Germany and in the land of the Helvetii.
# Has your daughter been sick?
# That slave's master was tired.
# That victory has delighted the Romans.
# I was hurrying to Britain with that friend.
# Where were you (pl.)?
=== § 151, p. 65 ===
# Iīs armīs pīrātās in ōceanō superābimus.
# Id auxilium Rōmānōs dēlectat.
# In iīs silvīs saepe fuī.
# Fīliōs eōrum agricolārum docuī.
# Eōs sociōs vīdistī et laudāvistī quod cum studiō pugnāvērunt.
# Quō properābatis cum eō puerō?
# Causae eius bellī fuērunt multae.
=== § 155, p. 67 ===
# Who have built that temple?
# Which lieutenants have armed those men?
# What is in that field?
# To whom does Marcus give that reward?
# To which countries is Britain near?
# Whom are you praising?
# Which book Cornelia has praised?
# With which sword have they injured the prisoner?
# What risk are you reporting?
=== § 156, p. 67 ===
# Quis nūntius deōrum erat?
# Quod dōnum eī puerō dedit?
# Cuius scūtum is servus habuit?
# Cui causās eius bellī dēmonstrāvērunt?
# Quem superāvistī?
# Quibus armīs Helvetiōs superāvērunt?
# Quō in vicō habitāvērunt?
=== § 161, p. 68 ===
# She rules, she was ruling, she will rule.
# I am buying, I was buying, I will buy.
# They are leading, they will lead, she was leading.
# She has ruled, they have ruled, she has led.
# They have led, you (sg.) have bought, you (pl.) have bought.
# I have sent, we have sent, she has sent.
# We are sending, they are sending, they will send.
# This farmer has many fields.
# He will send grain into a big town with boats.
# He will send grain into a village with strong horses.
# Who will lead the horses on the way?
# Sons of the farmer, Marcus and Galba, have led the horses, and they will lead (them) today.
# Then they will buy new arms.
# Formerly the Romans have ruled Italy well.
=== § 162, p. 69 ===
# Regunt, rēxērunt, regent.
# Dūcit, dūcēbat, dūcet.
# Ēmī, ēmimus, ēmērunt.
# Mittō, mittam, mīsī.
# Mittis, mittes, mīsistī.
# Ōlim Rōmānī multās terrās habuērunt.
# Eās terrās saepe nōn bene rēxērunt.
# Tum sociī auxilium mīsērunt.
# Quae puellae in Italiā hiemāvērunt?
# Lēgātum cum iīs captīvīs in Italiam mittam.
=== § 171/d, p. 75 ===
=== § 173, p. 75 ===
# Today I have seen the king and the general.
# We have seen the heads of many foot soldiers.
# Both kings and generals have led our soldiers.
# Besides, the horsemen were fighting bravely for the king and the general.
# They have overcome the allies with courage and zeal.
# They have injured many farmers with stones and javelins.
# Certainly the bravery of the horsemen and also the zeal of the foot soldiers will delight the legate.
# Who will procure shields for these horsemen?
# We have sent our soldiers in the forest too.
=== § 174, p. 75 ===
# Imperia rēgis fuerunt multa.
# Imperia rēgum probābimus.
# Helvetiōs virtūte eōrum mīlitum superābimus.
# Cum duce hiemābō.
# In oppidō rēgem vīdī.
# Is rēx erat dux bonus et benē rēxit.
# Cibum peditibus miserīs ēmit.
# Et arma et frūmenta in id oppidum mīsit.
=== § 181, p. 77 ===
# She will take, she takes, they take.
# I am hurling, I will hurl, I was hurling.
# They have taken, she has thrown, we have thrown.
# We have fled, we are fleeing, we have sent away.
# They running out from the conference.
# They will flee from (the vicinity of) the village into fields.
# She has fled (down) from the town to the ocean.
# Who have sent letters to the king?
# They have hurled javelins down from the walls of this town.
# He has sent the tired soldiers away from the battle.
# Why are you fleeing from that place?
# They will take our wagons.
=== § 182, p. 77 ===
# Iaciet, iacient, iaciunt.
# Iacis, iaciēs, iēcistī.
# Pedēs equitim vulnerāvērunt.
# Ex Ītaliā in prōvinciam properābō.
# Et fēminae et puellae ex agrīs fugiēbant.
# Ā Germāniā in Ītaliam properāvērunt.
# Lēgātum ad conloquium dūxit.
=== § 187, p. 79 ===
# For many reasons the Romans did not send help.
# They have injured these men with stones and javelins.
# They have many wounds in (their) heads and bodies.
# Today the fathers of the sons will grieve because of the wounds.
# Our general will praise the centurions because of the great victory.
# The peril of the scouts has frightened the soldiers.
# At that time you were not fleeing onto the walls of the town on the account of injuries.
# For the lack of food we were in great danger.
# The legate has led the horsemen and the foot soldiers to a conference.
=== § 188, p. 79 ===
# Vulneribus saepe dēfessī fuimus.
# Mīlitēs nostrōs virtūte studiōque eōrum laudābo.
# Patrēs nostrī diū pugnābunt et multam praedam capient.
# Quis centuriō pīla dē mūrō iaciēbat?
# Ob inopiam cibī aquaeque Marcus et Galba, centuriōnēs, nōn cum virtūte pugnāvērunt.
# Soror mea dolet quod fēminae Britanniae miserae sunt.
# Interim explōrātōrēs imperia ducis narrābant.
=== § 191, p. 81 ===
# The victory of enemies has frightened the citizens of the city of Rome.
# I have not seen the hills and the mountains of Italy.
# The scouts and centurions have fled out from the Sabines' territory.
# The Romans have had many boats and ships on the sea.
# Because of a great danger the citizens carry food and grain into the city.
# We too will send cohorts, and we will overcome the enemies.
# The town was near a mountain.
# The citizens' bravery was pleasing to the general.
=== § 192, p. 81 ===
# Habēmusne multās navīs hodiē?
# Ōlim in collīs montibusque incolēbant.
# Fīnēs Rōmānōrum erant lātī.
# Iī cīvēs nōn idōneī bellō sunt.
# Quī pīla dē mūrīs urbium iaciunt?
# Puerī ignīs magnōs in urbe vident.
=== § 197, p. 83 ===
# Our men have seen a centurion among the prisoners.
# Neighbour(ing tribe)s lament account of that victory of the Romans.
# Why the cohorts were fleeing through the woods to the town?
# With care you (pl.) have taught your daughters with books.
# The horsemen and the foot soldiers are in front of the gate.
# We will stay in the city without danger.
# And they even have carried out from that city many things.
# She has led the scouts across a wide field.
# He was in the province with many soldiers.
=== § 198, p. 83 ===
# Post id proelium nostrōs in Germāniam mittet.
# Oppidum sine auxiliō cēpērunt.
# Fīnitimī contrā hostīs fortiter pugnābant.
# Ante oppidum erat collis.
# Apud lēgātum nūntius exspectābat.
# Per Ītaliam properābimus et apud eōs montīs hiemābimus.
=== § 210, p. 89 ===
# Caesar was a daring leader of the Romans.
# The authority of this leader has been great.
# All soldiers greatly liked Caesar because he has often overcome the enemy.
# In a war the hardships of soldiers were often severe.
# Enemies were many and brave, and they were throwing many javelins at the Romans.
# But our cohorts did not flee from the public danger.
# They have fought bravely for Rome.
# That war was short.
=== § 211, p. 89 ===
# Gladius Rōmānōrum et brevis et gravis erat.
# Pedes socium audācem habuit.
# Nostrī multās gravīs portābant.
# Dōna omnibus amīcīs meīs dabō.
# Dux equitum ācrium propter multōs labōrēs dolēbat.
# Omnīs trībūnōs ā colloquiō dīmīsit.
=== § 214, p. 90 ===
# I am hearing, I was hearing, I shall hear.
# Does she hear? She was hearing, she will hear.
# They are hearing, they were hearing, they will hear.
# We are hearing, we have heard, you (pl.) will hear.
# I have heard, you are hearing, they have heard.
# You are coming, she is coming, you (sg.) did come.
# She has come, we are coming, we have come.
# Do you (sg.) find? You (pl.) have found, you (pl.) are finding.
# I have found, she is finding, she has found.
=== § 215, p. 90 ===
# Repperit, repperērunt, vēnērunt.
# Audīs/audītis, vēnistī/vēnistis, audīvit.
# Audīvimus, reperiēbāmus, vēnimus.
# Venis/venitis, reperiēbant, veniemus.
# Audiam, audimus, audivērunt.
# Vēnit, vēnit, audiunt.
# Dēfendent, oppugnāvērunt, dēfendit.
=== § 220, p. 92 ===
# During the winter winds on the sea are violent.
# In summer the farmers were toiling on the fields.
# At daybreak they came to Caesar.
# Caesar has waged war with strong enemies.
# In a few years he has conquered all provinces.
# At what time in the night did you (pl.) come into the city?
# They capture ten scouts during the second hour of the battle.
# At that time a messenger showed the document to a legate.
=== § 221, p. 92 ===
# Brevī tempore aestās grāta veniet.
# Secundā hōrā noctis ea imperia audīvimus.
# Decem vulnera in corpore peditis repperit.
# Prīmā lūce Caesar eam cohortem inter collem montemque mīsit.
# Prīmō annō bellī ā prōvinciā fūgērunt.
# Cūr hieme bellum cum Rōmānōs nōn gessērunt?
=== § 225, p. 95 ===
# They will have bought, I had waged, you (pl.) had spent the winter.
# They had shown, you (pl.) will have heard, we had subdued.
# I shallhave kept, I had filled, you (sg.) had armed.
# You (sg.) will have dwelt, she had called, I shall have stayed.
# You (pl.) will have told, you (sg.) had sent, we shall have fled.
# I had expected, I shall have suffered, she will have strenghthened.
# She had kept in check, I had ruled, you (sg.) will have hastened.
# Labienus had praised the chief for courage.
# A strong man will have had friends many and brave.
# Caesar had waged war not only in Gaul but also in Britain.
# At what time of the night you (sg.) will have taken the arms?
# The Gauls had defended the town with great bravery.
# The Roman People had liberated the citizens of that state.
=== § 226, p. 95 ===
# Terruerimus, vēnerās, dīmīseritis.
# Pugnāverit, cēperat, dēfenderant.
# Dūxerāmus, vulnerāverint, iēcerit.
# Aedificāveris, reppererāmus, portāverint.
# Pōpulus Rōmānus longō temporē Gallōs sustinuerat.
# Prīncipēs omnīs cīvitātēs convocāverant.
# In eō locō Labiēnus multa tēpa reppererit.
# Gallī auxilium exspectāverant.
# Tandem eum collem oppugnāverāmus.
=== § 232, p. 97 ===
# The general has sent those horsemen and foot soldiers to Capua.
# Finally, because of public danger, he has hurried out of Italy to Carthago.
# These soldiers had come from Athens, and they were fighting in Gaul.
# He sent a messenger to Corinth at the second hour of that night.
# Those legates had carried the plunder to Rome.
# In that island a bold people had dwelt.
# I had been a friend of this centurio.
# From this territory all chiefs had fled to Delphi, because at that time enemies were preparing for a war.
=== § 233, p. 97 ===
# Delphīs Athēnās vēnerant.
# Domō frāter meus Corinthum properāvit.
# Caesar nūntiōs per illās cīvitātēs mīserat.
# Hīs annīs Gallī amīcī fuerant populī Rōmānī.
# Hī hostēs magnā virtūte cum Caesar pugnāverint.
# Hoc pīlum, ille gladius est.
=== § 240, p. 100 ===
# She loves, he is loved.
# He was loving, she was loved.
# She will love, he will be loved.
# They love, they are loved.
# They were loving, they were loved.
# Will they love? Will they be loved?
# We are loving, we are loved.
# I advice, I am adviced.
# I was advicing, I was being adviced.
# I will warn, I will be warned.
# You (pl.) will warn, you (pl.) will be warned.
# You (sg.) warn, you (sg.) are warned.
=== § 241, p. 101 ===
# Laudās/laudātis, laudāris/laudāminī.
# Laudābant, laudābantur.
# Laudābis/laudābitis, laudāberis/laudābiminī.
# Doceō, doceor.
# Docēmus, docēmur.
# Docēbimus, docēbimur.
# Docent, docentur.
=== § 244, p. 101 ===
# This boy was praised by my brother.
# This booty will be brought to Rome by Caesar.
# By whom is power not loved?
# Many stories about Britain will be told by these messengers.
# The town is stormed by the soldiers.
# In this fight ten men are wounded by the Gauls.
# The grain will be brought with ships.
=== § 245, p. 101 ===
# Omnēs hī Gallī āb illīs equitibus sustinebuntur.
# Frātrēs meī ab illō puerō laudābantur.
# Auxilium ā hostibus expectātur.
# Paucae cohortēs ā prīncipe vidēbantur.
# Rōma āb omnīs Rōmānīs amābātur.
=== § 250, p. 103 ===
# That woman you see is Cornelia's mother.
# The merchants are bringing many (things) into Germany.
# The brave enemies by whom our native land is laid waste are Romans.
# These men with whose bravery and determination the city was guarded will come home from war.
# The towers which were built with care will be destroyed by the enemy.
# The hostages, who are liberated by the Romans, will hurry to Athens.
# The commander of legions whom Caesar sent across the river was Labienus.
=== § 251, p. 103 ===
# Arma, quae portāvimus, nōn bona sunt.
# Eā aestāte cum Caesare, quī prōvinciam dēfendit, pugnābi(ti)s.
# Cōnsilium, quō illud oppidum vastātur, laudābō.
# Caesar decem legiōnēs in bellīs, quae cum Gallīs gessit, habuit.
# Fēmina, cui viam dēmonstrāvī, māter huius obsidis miserī est.
=== § 258, p. 106 ===
# She rules, he's ruled.
# She was ruling, he was ruled.
# She will rule, he will be ruled.
# They rule, they are ruled.
# They will rule, they will be ruled.
# You (sg.) rule, you (sg.) are ruled.
# You (sg.) were ruling, you (sg.) were ruled.
# You (sg.) will rule, you (sg.) will be ruled.
# We are ruling, we are ruled.
# You (pl.) rule, you (pl.) are ruled.
# I shall rule, I shall be ruled.
# They are seizing, they are captured.
# She was seizing, he was being captured.
# She will seize, he will be captured.
# They will seize, they will be captured.
# You (sg.) will seize, you (sg.) will be captured.
# You (sg.) seize, you (sg.) are captured.
# You (sg.) were seizing, you (sg.) were being captured.
=== § 259, p. 106 ===
# Dūcit, dūcitur.
# Dūcent, dūcentur.
# Dūcunt, dūcuntur.
# Dūcis/dūcitis, dūceris/dūciminī.
# Dūcēmus, dūcēmur.
# Mittimus, mittimur.
# Mittiturne? Mittunturne?
# Mittet, mittētur.
# Mitteris/mittiminī, mittēris/mittēminī.
# Gerēbant, gerēbam.
# Gerimus, gerēmus.
# Iacimus, iacimur.
# Iaciēbāmus, iaciēbāmur.
# Quis recipit? Quis recipiēbatur?
=== § 261, p. 107 ===
# Ambassadors have come into consul's camp for peace.
# At last these legates are led to the consul.
# They will be received well by the consul.
# No longer is the enemy's city defended.
# The weapons which were thrown down from the walls wounded many.
# The soldiers of the consul are not defeated often by the Gauls.
# The peace will be welcome to the Roman people.
=== § 262, p. 107 ===
# Labiēnus paucīs cum cohortibus Rōmā in Galliam mittētur.
# Illa oppida Galliae fortiter dēfendentur.
# Legiō ex castrīs dūcuntur.
# Hodiē multae cīvitātēs Galliae vincuntur.
# Nova cōnsilia sociōrum nostrōrum fīnitimīs nūntiābantur.
# Illī recipientur ā Caesare, quī Helvetiōs vīcit.
=== § 269, p. 109 ===
# His shield was heavy.
# Their friends have been soldiers.
# Their zeal is praised.
# I will stay with you (pl.) because of the storm.
# The war is waged against them.
# Is Marcus with you (sg.)?
# He was walking with her.
# They will hurry to Athens without you (pl.).
# We are miserable, you (pl.) are sick and exhausted.
# All your (pl.) plans are acceptable to us.
# His father and mother were received well by you (pl.)
# The remaining chiefs, who were arming themselves, did not come to the meeting.
# And thus he calls a centurion to himself and explains the plan to him.
# Caesar led the foot soldiers out the camp daily.
=== § 270, p. 109 ===
# Māter eius et pater meus tē vīdērunt.
# Nunc sunt cum mē.
# Eī, eī, eīs praemia dabō.
# Castra eōrum oppugnātur.
# Egō in oppidum tēcum properābō.
# Magnō cum labōre nōs līberāmus.
# Ea sē gladiō eius patris vulnerāvit.
# Reliquī sē interficient.
# Ea aestāte oppida eōrum ā Gallīs vāstābuntur.
=== § 272, p. 110 ===
# She hears, she's being heard.
# She was hearing, she was being heard.
# She will hear, she will be heard.
# We hear, we are being heard.
# We will hear, we will be heard.
# I shall hear, I shall be heard.
# You (pl.) hear, you (pl.) are being heard.
# You (pl.) will hear, you (pl.) will be heard.
# You (sg.) hear, you (sg.) are being heard.
# I was hearing, I was being heard.
# They hear, they are being heard.
# They were hearing, they were being heard.
=== § 273, p. 110 ===
# Impediō, impedior.
# Impediēbam, impediēbar.
# Impediam, impediar.
# Impediunt, impediuntur.
# Impedient, impedientur.
# Reperit, reperītur.
# Reperiēbat, reperiēbatur.
# Reperiet, reperiētur.
=== § 284, p. 113 ===
# Caesar, however, sent his own soldiers across the river.
# Caesar will find his (not his own) brother in the camp.
# That sick man was deprived of water.
# Afterwards that state was lacking food and grain.
# He kept soldiers away from this people by buildings and money for a long time.
# Because of want of arms the Germans left off from the battle.
# Our (troops), who had hurried to the camp of the Germans, kept them away from weapons.
# A river was cutting off our troops from the road.
# At that time boats were being built near the river by the enemy.
=== § 285, p. 113 ===
# Amīcī nostrī pecūniam carēbat.
# Hostēs sua aedificia dēfendent.
# Nōs ā cūrā līberābis/līberābitis.
# Caesar sua cōnsilia dē pāce suīs nūntiāvit.
# Posteā ex omniā potestāte Germānōs prīvābunt.
# Reliquī prīncipum ab suīs oppidīs interclūdēbantur.
=== § 287, p. 114 ===
# A man has been loved, a woman has been loved, a war has been loved.
# The men have been loved, the women have been loved, the wars have been loved.
# The soldiers had been warned, the boy will have been warned, the town had been warned.
# A farmer has been captured, a city has been ruled, a province had been ruled.
# I have been captured, I had been captured, I shall have been captured.
# You (sg.) have been heard, you (sg.) had been heard, you (sg.) will have been heard.
# We have been heard, we had been heard, we shall have been heard.
=== § 288, p. 115 ===
# Gallia monita est, Gallia monita erat, Gallia monita erit.
# Aedificia capita sunt, aedificia capita erant, aedificia capita erunt.
# Fīnēs ā Germānīs rectī erant.
# Urbēs dēfensae erunt.
# Itaque audītae erimus.
=== § 290, p. 115 ===
# Many towns in Italy have been built by the Romans.
# Few Germans there have been killed with our javelins.
# Your words will have been heard by me.
# At that time the commander was cut off from the baggage and carts.
# The war, which has been waged by Caesar, was long.
# The soldiers, who were sent to Gaul by him, lacked grain.
# The booty that had been captured by our commander has been carried to Rome without delay.
# In a meeting Caesar said to his own (troops): "My plans have not been hampered by the enemy."
=== § 294, p. 117 ===
# The arrival of the legions delights us.
# Our army, however, has cut off the Germans from supplies.
# Between our (troops) and the enemy was a lake.
# Consuls were commanders of Roman armies.
# They had fought violently for a long time on the flanks.
# Labienus' camp was protected with a swamp and a lake.
# In the ports of Greece we have seen many ships during the winter.
# We observed the armed force of the enemy.
=== § 295, p. 117 ===
# Et pedibus et cornibus pugnant.
# Inter montīs multī lacūs āb eīs videntur.
# Ab adventū mercātōrum dēlectātī erāmus.
# Haec domus est mea, illa est tua.
# Prīmā luce autem commeātūs ē castrīs ad portūs portāvērunt.
# Statim Rōma ā manibus cīvium mūnita est.
# Cūr domū properās/properātis?
=== § 299, p. 119 ===
# Which way is shorter?
# Which way is the shortest?
# Nevertheless, the cavalry had travelled through the neighbouring villages.
# The Germans asked for peace from the Roman senate.
# The friendship of the allies will be very pleasing to the Roman people.
# Our army will make an attack upon the enemy.
# This river is wide, but the sea is wider.
# The Gauls certainly were very brave in the war.
# Where have you seen more brave citizens?
=== § 300, p. 119 ===
# Domus tua novissima est.
# Imperātōr equitātūs per iter longius mīsit.
# Aestās in Brītanniā nōn brevissima est.
# Hōc pīlum gravius est.
# Pāx autem ab omnibus cīvitātibus Galliae petetur.
# Impetum in turrem parvō cum studiō faciunt.
# Excercitus per silvās palūdēsque iter faciēbat.
=== § 311, p. 123 ===
# A large part of the route is narrow but very easy.
# At daybreak we saw a part of the enemy on the mountain.
# That of all the roads of the city was shortest.
# The men of Britain are different from the men of Italy.
# Straightaway ten of the soldiers leave off from the battle.
# On a beach the women were grieving because the road was difficult.
# The enemy was fiercest and swiftest ff all the Gauls.
# The most difficult is often very easy.
# They will strengthen (their) friendship with the nearest tribes.
=== § 312, p. 123 ===
# Habemusne cōpiam armōrum?
# Iter per montīs facile nōn erit.
# Quinque ex amīcīs meīs in lītore mittentur ā mē per iter facilius.
# Pars mīlitum ā reliquō excercitū interclūdēbātur.
# Manus tua similis est meae (manuī).
# Hōc est facillimum omnium itinerum per fīnīs Gallōrum.
=== § 323, p. 127 ===
# Six legions are led into the lower part of the province by Caesar.
# The roads of ''our'' city are narrower by many feet.
# A very large armed force of the enemy had been assembled, and they were preventing the Romans from march(ing).
# They have thrown very many javelins down from the higher ground.
# That tower is ten feet taller than the wall.
# A smaller fort was defended by a hundred soldiers.
# Your part of the work is larger than mine.
# Occasionally our friends give us bad advice.
# I see the top of the mountain.
# The lower (southern) part of Italy was called "Great Greece" on account of many Greek cities (there); the upper (northern) part of Italy, because the Gauls dwelt there, was called "Cisalpine Gaul" or "the Nearer Gaul".
=== § 324, p. 127 ===
# Virī optimī interdum plūrimōs amīcōs nōn habent.
# In itinere plūrimī (virī) interficiēbantur; reliquī in silvām magnam fūgērunt.
# Cornēlia pede altior quam Iūlia erat.
# Gallī plūrēs equitēs quam Rōmānī habēbant.*
# Pars hostium in locīs superiōribus exspectābat.
# Cōnsilium melius senātuī praebitum est.*
# Urbēs maximae centum obsidēs Caesarī mīsērunt.
* While the imperfect tense describes, the perfect tense advances a narrative.
=== § 329, p. 129 ===
# Fathers and mothers love very greatly their own children.
# They give to them very good advice and work for them very diligently.
# At that time we will send ahead a great number of foot soldiers in that large forest, which we see from here.
# From this mountaintop I easily see six cities and a hundred roads.
# In the lowest (southern) parts of the country rivers are very small.
# Our troops have been hindered longer by the lake than the mountains.
# Most of the soldiers have been left behind near the port; the remaining (soldiers) have suddenly attacked the enemy.
# They will build walls with trees and stones.
# This river is wider than that by a hundred feet.
=== § 330, p. 129 ===
# Interdum hostēs Caesaris multō fortius quam mīlitēs Rōmānī pugnāvērunt.
# Sed mīlitēs eius ācerrimē audacissimēque pugnābant.
# Diūtissimē cum Gallīs bella gerēbat.
# Ampla praemia saepe centuriōnibus suīs deit quod multa praeda cēperant.
# In urbe Rōmae ā suīs inimīcīs interfectus est.
=== § 335, p. 131 ===
# At first Caesar pitched the camp on the top of the mountain.
# The camp has been pitched on the top of the mountain by Caesar.
# From this place the enemy have been seen on the large plain.
# Between this mountain and that plain was a river, which was hundred feet wide and five feet deep.
# However, Caesar drew up the battle line and was waiting the enemy's attack.
# For the larger part of the day his horsemen remained in the flanks.
# But the enemy did not attack, because they had a small hope of victory.
# At that time the young lacked corn for many days.
# The hills behind our camp is higher by many feet.
=== § 336, p. 131 ===
# Caesar hanc rem ē plūrimīs nūntiīs audivit.
# Eō diē fidēs Gallōrum parvissima erat.
# Flūmen in eō locō decem pedem altum erat; itaque in lītore tota impedīmenta relīquērunt.
# Hae rēs (mīlitēs) nostrī omnī spē prīvāvit.
# In Italiā sex diēs manēbimus.
=== § 345, p. 135 ===
# He sends a messenger in order that she may warn the citizens.
# A youth is being sent that the citizens may be warned.
# The legion is sent lest the town will be captured by the enemy.
# The legions are fighting bravely to capture the town.
# The boy has come so that he will hear the story.
# The boys have come so they may hear your words.
# We are sending them to govern the province.
# We send them in order that the province is ruled by them.
# You hasten to Gaul in order to wage war.
# We send ahead a hundred soldiers to fortify the camp.
=== § 346, p. 135 ===
# Mittitur ut pugnet.
# Eōs mittīmus ut viam reperiant.
# Mitteris nē in urbem hostēs impetum faciant.
# Mīlitēs ē castrīs dūcentur ut aciēs īnstruātur.
# Veniam tē mātremque (tuam) videam.
# Pugnat ut sē dēfendat.
=== § 353, p. 137 ===
# They come that they may seek peace.
# They came that they might seek peace.
# They will come that they may seek peace.
# They had come that they might have sought peace.
# They were fighting bravely lest they might be overcome by the Gauls.
# They had hurried across the river so they might storm the town.
# The legions will be sent to cut off the enemy from supplies.
# In order that they might defend the port our (troops) have been sent ahead.
# The consul will speak very boldly to rouse the <s>rabble</s> Roman people.
=== § 354, p. 137 ===
# Labōrant ut laudent.
# Labōrābant ut laudārent.
# Labōrābunt ut laudent.
# Labōrāvērant ut laudārent.
# Dē locīs superiōribus pīla iaciēbant ut Rōmānōs impedīrent.
# Prīncipēs convocāverat ut novum cōnsilium audīrent.
# Dē proeliō dēsistent nē interficiantur.
=== § 360, p. 139 ===
# The boy acted in such a way that he was liked by everyone.
# The city has been laid waste lest it would have been captured by the enemy.
# We advice him lest he become a soldier.
# He commanded them not to travel through our province.
# So great is the lack of food that very many are sick.
# The city has been defended so bravely that for ten days it was not captured.
# The enemy have fled to the forests lest they be surrounded by our (troops).
# First Caesar ordered them to give aid to our (troops).
=== § 361, p. 139 ===
# Paucī tam erant ut fugerent.
# Erant tam fortitēs ut nōn fugerent.
# Eum moneō ut fortior sit.
# Lēgātus mīlitēs ē castrīs dūxit ut āciem īnstrueret.
# Postulat ut castra in eō locō pōnant.
# Pālus tantus est ut nostrī impediantur.
=== § 375, p. 145 ===
# She asks what they are doing, they have done.
# She knew what the were doing, they had done.
# I shall tell you why they were toiling, they have toiled.
# They had heard whence the soldiers were coming, had come.
# They asked why they were being praised, they had been praised.
# She knows why they are staying, they had stayed.
# She has told us what those boys had done.
# I asked whether she had been often in Italy.
# Do you know how many years the Romans held Britain?
=== § 376, p. 145 ===
# Tibi dīcam ubi fuissent et quid fēcerint.
# Hī veniunt ut videant, illī ut videantur.
# Dēfessī tam sunt ut hōdiē nōn labent.
# Mē rogāvit ut cūr venissem.
# Audīveram ut ubi fuisset.
# Dūx rogāvit num (illī) omnēs venīrent.
# Scīsne quot mīlitēs veniant?
=== § 383, p. 147 ===
# On the way two rivers, ten feed deep, will be found.
# The memory of these events had roused the army.
# They had marched three miles and (then) the first line of battle was drawn up.
# Caesar ordered that on the right wing were arranged the third legion and the fourth legion on the left.
# Of the three brothers Marcus was the bravest.
# For desire of victory this one legion kept back the Gauls.
# The heavy javelin of the Romans was six feet long.
# The next day they marched eight miles (away) from that place.
# The four scouts, whom had been sent ahead, fled because of fear of the enemy.
=== § 384, p. 147 ===
# Spēs praemī līberōs Marcī incitābat.
# In eō colle decem mīlia peditēs et duo mīlia equitēs īnstructī sunt.
# Impedīmentum excertitūs mīlia passuum ā lītore relictum est.
# Imperātōr secundam legiōnem prō castra īnstruet.
# Adventū duarum legiōnum hostēs ē sinistrō cornū dēcessērunt.
# Timor Caesaris Rōmānōrumque ūnam cīvitātem impedeet.
# Ūnus hominum erat mihi inimīcus.
=== § 388, p. 149* ===
# On one shore of the river there was a city, and on the other was a mountain.
# Of the two men, one was a general, the other was a tribune.
# By the courage of three legions alone the army was defended.
# One legion was placed on the right wing, and the other was placed on the left wing by Caesar.
# I will give neither of the captives food.
# Which boy is your son?
# During the summer there was not a ship in the sea.
# Why are you encouraging both of them?
=== § 389, p. 149 ===
# Caesar virtūtem tōtīus legiōnis laudāverat.
# Uter adulēscēns maiorem virtūtem dēmonstrāvit?
# Caesar sine morā cum sōlā secundā legiōne iter faciet.
# Aliī castra ponēbant, aliī aciēs īnstruēbant.
# Nūllō in locō plūrimās arborēs repperimus.
=== § 396, p. 151* ===
# To come, to give, he is able to leave.
# To be hindered, to be placed, they are able to be placed.
# Receiving rewards is often pleasing.
# Caesar has begun to lay waste to the remaining fields and towns of that state.
# To hear your words is exceedingly difficult.
# The Germans are not able to cut off supplies from the Romans.
# At once the multitude began to beg for peace.
# They ought to defend themselves.
# Who of the entire army was so strong that he endured an enemy attack?
# In the winter, days are five hours shorter than in the summer.
=== § 397, p. 151 ===
# Castra mūrō altō munīre erit facile.
# Auxilium praebēre dēbēs/dēbētis.
# Mīlitēs decimae legiōnis incitāre nōn potest.
# Bellum gerere nōn saepe est optimum.
# Fortēs bonīque esse dēbēmus.
# Aliī pugnāre, aliī fugere coepērunt.
=== § 404, p. 154* ===
# By means of two scouts, Caesar knew that the enemies had marched six miles.
# The allies respond that they will send aid to Caesar immediately.
# The general said that he will give ample rewards to his own (men).
# They all long to be children.
# They all long for Italy to be free.
# They all see the town being bravely defended.
# Caesar ordered that the third line of battle be drawn up at once.
# He knew the Gauls were coming to make an attack.
=== § 405, p. 154 ===
# Legātus suōs turrīs aedificāre iubēbit.
# Sciō duās legiōnēs praemissās esse.
# Per captīvōs cognōvit hostēs cibō carēre.
# Eōs in illā cīvitāte hiemāre iussit.
# Mercātōrēs respondērunt nūllum frūmentum in fīnibus Germānōrum esse.
=== § 413, p. 159* ===
# He can, he was able to, he shall be able to.
# We have been able to, they had been able to, they were able to.
# Do you know why these words of yours cannot be heard?
# Identical were the difficulties of war that he could report to you all.
# Labienus himself knew the causes of war were very many.
# I reckon that I will purchase nothing today.
# They no longer demand that the Roman people proffer ships.
# The centurion who with eight scouts had been send to learn the way has reported that he had not been able to learn the way.
# They all were hoping that Caesar would defeat the Gauls this summer.
# The men themselves say that the weapons cannot be thrown.
=== § 414, p. 159* ===
# Potuimus, poterit, poteram.
# Potuerat, potuerint, poterāmus
# Līberī ipsī nōn iam pācem cupīvērunt.
# Dīcunt sociōs nostrōs hodiē eōdem in periculō esse.
# Putō mē duō diē cum istō amīcō manēre.
# Mercātōrēs nūntiāvērunt multās manūs equitum in mōntēs missās esse.
# Putō tē pugnāre posse.
# Putāvistī mē venīre nōn posse.
=== § 421, p. 162* ===
# Two new rivers have been found by certain bold men.
# I can no longer see any one in front of the house.
# He demanded that the weapons be surrendered at once so that the citizens would be free from fear.
# A certain captive has declared the same thing once again.
# Each one shall be able to reply to some one.
# Some women had not only been disturbed, but also had fled.
# The legate demanded that everyone carry grain out of the region.
# A certain legion was hastening to Delphi on account of a hope for victory.
# This land of yours is like the island.
=== § 422, p. 163* ===
# Quisque dīcit Gallōs appropinquāre.
# Quiddam nōn postulat.
# Illa puella dextrā in manū aliquid habet.
# Parte cuiusque aestātis apud montēs collīsque habitāmus.
# Hodiē fābula nobīs ā aliquō narrābātur.
# Simul quīdam in Caesarem vēniēbant ut auxilium postulārent.
# Sciō quid quemque agere posse.
=== § 430, p. 165* ===
# One town of the allies had been attacked by the enemy for a long time, and fortifications were ravaged daily.
# Because food and weapons have began to be lacking to the citizens, the allies have asked that Caesar send troops to help.
# Therefore Caesar has placed Labienus in charge of one legion and has sent him as an aid to the citizens.
# On the way Labienus ran into the enemy, who came from everywhere to capture the town.
# The javelins were a hindrance to them, but the swords were a great advantage.
# Our men have been superior to the enemy and have overcome them.
# Labienus said that he would be a defense to the citizens.
# Do you know who was at the head of the town?
=== § 431, p. 165* ===
# Virtūs Caesarī saepe nōn dēerat.
# Virīs fortibus praefuit.
# Praesidiō patriae suae erat.
# Annōs multōs bellīs proximīs nōn superfuit.
# Principibus Gallōrum Germānōrumque praestitit.
# Lēgātōs cīvitātibus, quae victae erant, praefēcit.
# Mare multīs pedibus altius est quam ille lacus.
=== § 436, p. 167* ===
# You all are willing, we are not willing, you are more willing
# He did not trust the merchants.
# To be unwilling, to have been more willing
# They wish to persuade you all.
# He is willing to favor me.
# And they do not want to cause injury to you.
# We prefer to be of help to you.
# Why do you not want to help your mother? Lit. Why do you not want to be a help to your mother?
# We reckon he want to rule over the cavalry.
# At sunset the soldiers will capture the enemies' camp.
# For few desire war from these people.
# He commanded the soldiers that they bravely oppose the Gauls.
# Neither the women nor the children were afraid.
=== § 437, p. 167* ===
# Volēbant, nōlam, mālet.
# Auxiliō nostrīs nōlēbant.
# Amīcīs tuīs placēre nōn poterant
# Atque imperātōrī nōn persuāsērunt.
# Eīs imperābit ut mulieribus nōn noceant.
# Illō tempore neque Gallī neque Germānī bellō volēbant.
=== § 447, p. 171* ===
# Some of the soldiers were fleeing and have been captured.
# Hindered by these things on this day, they did not make an attack.
# The other centurion was wounded while fighting in the first line of battle.
# Aid had been sent to our soldiers attacking the camp.
# Certain women left in the town have determined to defend themselves.
# Part of the enemy has been disturbed by the arrival of Caesar and has left at sunset.
# He left the soldiers that were brought back in the winter quarters.
# The multitude of slaves, having been frightened, were fleeing from the city.
# The following day, the camp have moved.
=== § 448, p. 172* ===
# Quīdam vir resistēns ā hoste vulnerātus est.
# Vulnerātī tam fortiter pugnavērunt ut captī esse nōn possent.
# Commōtus difficultātibus itineris legiōnēs suōs rēdūcere cōnstituit.
# Hī equitēs praemissī longē fortiterque Gallōs restitērunt.
# Dē cōnsiliīs tuīs rogātus, nihil dīcam.
# Ducēs captī in Italiam mittentur.
=== § 457, p. 176* ===
# When the enemies had been defeated, he determined to march through the middle of the province.
# With Caesar as consul, the war with the Gauls was long.
# When a certain town had been taken by storm, a camp was placed on the very banks of this river.
# The Helvetians, having been influenced by a lack of everything, sent ambassadors to Caesar concerning surrender.
# With these things having been discovered, all were eager for war.
# Although few were defending it, the Romans were not able to capture this town.
# With the captives having been received into surrender, the general left behind three cohorts as relief for the camp.
# These prisoners had been captured for the same reason while fighting quite bravely.
# Who put the horsemen who had been sent to aid the generals in command?
# When the city had been fortified, the citizens were no longer frightened.
=== § 458, p. 177* ===
# Hīs verba audītibus, magnopere permōvit.
# Urbe captī, mīlitēs captīvēs līberāvērunt.
# Tōtum diem hostēs nostrōs resistēbant.
# Labienō duce, exercitus noster hostibus nocēre potuerint.
# Monte captī, Labienus nostrōs expectābat.
# Ēruptiōne factī, prīmam aciem nostram appropinquāre nōn potuērunt.
=== § 464, p. 179* ===
# He goes, we go, they were going.
# To go, having loved, they shall go.
# They go, they had gone, he has gone.
# He reported the difficulty of navigating.
# This is the reason for sending.
# He came for the purpose of sending letters.
# Diligence in action [acting/doing] pleases the leader.
# The opportunity was not given for fighting.
# Caesar has stopped speaking.
# The time for throwing javelins at the enemy was short.
# They have come near to talk.
# He shall go with you all to enquire about their names.
# He wanted to know where they had been going.
# Labienus ordered that the camp be fortified with a rampart.
=== § 465, p. 179* ===
# Īs, ībant, ierat.
# Ībimus, ieris.
# Quō iērunt?
# Eīs īre persuādet.
# Imperāvit ut eant.
# Causā quaerendī pācem vēnērunt.
# Spatium ōrandī nōn datum est.
# Ad nāvigandum mare appropinquābant.
# Eō diē tria mīllia passuum iērunt et occassū solis casta posuērunt.
=== § 476, p. 183* ===
# He bears, we bear, they shall bear.
# To bear, he shall bear, to have borne.
# They are coming back to bring help.
# They had borne, he had been carried.
# In peace-seeking.
# On account of desiring freedom.
# By increasing men.
# Of bridge-making.
# The legion prepares itself for waging war.
# Many have come together to see the new city.
# The sign had to be given.
# With the signal given, the soldiers marched with the greatest swiftness.
# Everything had been done at once.
# We reckon that the war ought to be arranged.
# He lacked time because of the javelin throwing.
# Weapons are to be brought to the winter-quarters.
=== § 477, p. 183* ===
# Fers, ferunt, tulerat.
# Tulistī, ferēbant, ferendō.
# Auxilium ferēbatur.
# Dīxērunt scūta ferenda esse.
# Oppidī videndī.
# Causā aciēī īnstruendī.
# Bellō gerendō.
# In acrīs vāstandīs.
# Vīs sociōrum cotīdiē auget.
# Vīs hostium ferenda est.
# Cohors celeritāte redūcenda est.
# Lēgātus hīs cōpiīs praesentus erat.
=== § 485, p. 187 ===
=== § 486, p. 187 ===
=== § 491, p. 189 ===
=== § 492, p. 189 ===
=== § 499, p. 193 ===
=== § 500, p. 193 ===
=== § 504, p. 195 ===
=== § 505, p. 195 ===
== Reading Lessons ==
Translations for the reading lessons are kept as literal as possible. These should not be taken as an example neither for translation nor reading.
=== § 96, p. 46-7 ===
Cornelia and Julia are small girls. Where do they dwell? They dwell not in Greece but in a renowned town of Italy. They are inhabitants of Rome. Italy is the native country of the Romans. Rome has wide roads and large temples. The Romans like and approve of war.
<br>
Cornelia is a poet's daughter. The poet often walks in wide gardens. He also sings about the long war and the flight of the Germans because he approves the victory of the Romans.
<br>
Julia is a farmer's daughter. The farmer has horses and new carts. The farmer's horses carry food and grain. The farmer's slaves give water to the horses. Julia likes the horses and praises the slaves. The farmer is a good master.
<br>
Marcus and Galba, tribunes, are friends of the girls. Marcus is a friend of the poet's and tells pleasing stories to Cornelia. Galba shows forests and islands of the sea to Julia. (During the modern times this could, and probably would, end up being understood horribly wrong, and the whole affair would end badly for both Marcus and Galba.)
<br>
A good woman teaches the girls. Cornelia's diligence delights the woman. She calls together the girls in the poet's garden, and she tells stories. The stories of war frighten the small girls.
<br>
They (= presumably the girls and the woman) often prepare gifts for Vesta. Who is Vesta? Vesta is a Roman goddess, and she has a temple. The girls often walk on Roman roads and behold the booty of Germany and Britain.
=== § 138, p. 61 ===
Romulus has built Rome, the renowned city of Italy. The Romans were strong men, and they loved their fatherland. They were fighting often for their fatherland, and with arms they subdued often the Sabines in battle. The Sabines had fine arms, and they fought with great zeal for a long time with long javelins. But the Romans put the Sabines in flight, and they wounded many men with (their) swords.
=== § 158, p. 67 ===
Mars, ancestor of the Romans, was fond of arms, battles and wars. Romulus and Remus, sons of the god of arms, have built Rome. And so, battles and wars delighted the minds of the Romans. The Romans worshipped Mercury, Neptune, and Vesta. Mercury, a messenger of the gods, related commands of the gods to inhabitants of the Earth. Sailors worshipped Neptune, the god of water and sea. Women worshipped Vesta, the goddess of hearth, and they prepared many offerings for the goddess.
=== § 169, p. 72 ===
''Marcus'': My friend told me a good story today.
''Julia'': About what did your friend tell?
''Marcus'': (He told) about Icarus, son of Daedalus, an unfortunate boy.
''Julia'': Where did Icarus live? In Britain?
''Marcus'': He did not live in Britain, but in Crete, a large and famous island. Daedalus conceived and prepared wings for (his) son. These wings he put on Icarus using wax with great care. The wings were pleasing to Daedalus. The he taught Daedalus, the boy, to fly, but Icarus flew too high. An so the sun melted the wax, and the wings fell off.
''Julia'': And what about Icarus?
''Marcus'': Icarus too fell down into the sea.
''Julia'': [https://en.wiktionary.org/wiki/alack Alack], poor Icarus!
=== § 170, p. 73 ===
'''The Romans fight for (their) allies'''
Because injuries have been many, our allies ask for succour. And accordingly, the Romans have sent a legate with men into the land of Helvetians. Presently this legate has called men together in a town. He has bought food and carts, and he has armed the men with swords and shields. Meanwhile the allies have prepared grain. Today the legate will strengthen the spirits of the men. Then he will lead the men in neighbouring lands and will wait for a battle. The spot of that battle is near to the Helvetians('s troops). Our men will fight with great zeal for the allies, and they will subdue the Helvetians. They will lead many prisoners into the town. Those prisoners will pass the winter in our villages.
=== § 200, p. 84 ===
Porsena, an enemy of the Romans, was a famous king. Once he was besieging the city, Rome. Terror of the Romans was great, because Porsena had many soldiers. Frightened women were supplicating the gods in temples. But the bravery of a strong man protected Rome. For with a few comrades Horatius kept back the enemy in front of the Sublician bridge. Meanwhile the citizens dismantled and broke down the bridge in the rear. Then Horatius sent away (his) comrades, and he (alone) defended the bridge against the enemy. Finally the bridge fell down, and among the javelins of the enemy Horatius leapt down into the Tiber and swam to his comrades. This example of bravery saved Rome. Today we praise the deeds of Horatius.
=== § 202, p. 85 ===
Spain, Gaul, and Germany were countries of Europe. Nearest to the Strait of Gibraltar (= [https://en.wikipedia.org/wiki/Pillars_of_Hercules the Pillars of Hercules]) was Spain. The Gauls lived between Spain and Germany, and Germans dwelled on the other side of Rhine. The Germans had a few villages in Gaul too. Because these nations were enemies (of the Romans), the Romans have fought with the Spaniards, the Gauls, and the Germans often.
Between Gaul and the (mediterranean) sea was a new province of Rome. For a long time the inhabitants of that province warded off violence of the Gauls. Finally they requested help from the Romans; for they were greatly afraid of the neighbouring Helvetians. The Helvetians were hostile not only to the province but also to the Germans, and they were fighting the Germans with almost daily battles.
=== § 216, p. 91 ===
M: Today I heard the story about Porsena and Horatius.
I: Who was Porsena? Was he a Roman?
M: Porsena, a noble king, was an enemy of the Romans. With daring soldiers he came into the territories of the Romans, and he attacked the city of Rome.
I: Did the Romans flee because of the danger?
M: Great was the danger of the city and of the citizens, because the enemies were brave and eager, but the Romans did not flee.
I: Did Porsena capture Rome?
M: He did not capture the city, because the bravery of a strong man was protecting the citizens. With few allies, Horatius was bravely fighting for the city.
I: Did Horatius withstand the enemies for a long time?
M: Not for a long time, because the enemies were many, and they were hurling many javelins. But he swam across the river to allies. The Romans praised Horatius on account of his courage.
=== § 222, p. 93 ===
# Once a friend asked a Spartan: "Why does Spart not have walls?" The Spartan responded: "Our city has the very best walls, the courage of the strong inhabitants."
# Once the Spartan king said: "My citizens have never asked, 'How many are the enemies?' but 'Where are they?'"
# Before battle with a Spartan, an enemy said, 'You will not see the sun on account of a multitude of javelins and arrows." "In shade, therefore, we will fight," responded the Spartan.
=== § 234, p. 98 ===
In Gaul, the citizens were many and strong. The chiefs of these citizens feared the power and commands of the Romans. Therefore, they had called together many soldiers and among the mountains and hills they were waiting for the Romans.
In the first year of the war, the Roman people sent Caesar against the Gauls. This leader, with Labienus and foot soldiers and a few horsemen, hasetened out of Italy in the summer and without peril came into the territories of the Gauls. In these places the scouts of Caesar found enemies.
At dawn, the Roman soldiers attacked the Gauls. Intense was the battle. The Gauls were defending the place with stones and heavy weapons. Our men were throwing javelins, and with swords they were withstanding the enemeis. Finally the weary Gauls, on account of a lack of weapons and wounds, fled across the river.
For ten years Caesar waged many wars in Gaul and he sent many captives to Rome.
=== § 236, p. 99 ===
Because the Britons had often sent aid to the Gauls, Caesar sailed to the Britain island. Although frightened by a great number of ships and men, the strong Britains fought with great courage in defense of the homeland. Yet finally they fled from shore. After this battle, the Romans had laid waste to the fields of the enemies, and had seized villages, and had captured much booty. Cassivellaunus, chief of the Britons, sent envoys to Caesar. Caesar demanded hostages. With these hostages and many captives, he came out of Britain into Gaul. On account of this victory, great was the power of the Romans in Britain.
=== § 275, p. 111 ===
At one time, the cities of Rome were rendered a great danger from the Volscians, who were bold enemies of the Roman people. The Volscians were stirred and led by Coriolanus, a Roman. At last, many buildings in the fields were laid waste by the enemies. The citizens armed themselves. The city was supplied food by the consul. In vain the enemies were hindered. Then, because of the great danger, the Romans sent the mother of Coriolanus to him regarding peace, because she was greatly loved by her son. Veturia, the mother of Coriolanus, came into the camp to her son. She found him in the camp. Coriolanus saw her and said, 'My country have conquered me and my allies.' At once he fled from the city with the enemies.
=== § 277, p. 111 ===
Many stories concerning Perseus are told by poets. Perseus was the son of Jupiter, king of the gods. His grandfather was Acrisius. He was wishing to kill Perseus; for on account of the power of the gods, he feared the boy. Therefore, he captured him while he was still a baby, and placed him with his mother in a chest. Then he cast the chest into the sea. Danae, the mother of Perseus, was fearing greatly, for a great storm was disturbing the sea. However, Perseus was sleeping in the arms of his mother.
=== § 291, p. 115 ===
Then Jupiter saw all of this, and he determined to save his son. Therefore he made the sea calm, and he drew the chest to the island of Seraphim. Polydectus was the king of this island at that time. After the ark was drawn to the shore, Danae was sleeping on the sand. After a short time she was found by a man, and she was led to the king. He received well the mother and son, and offered to them a safe dwelling in his territories.
=== § 314, p. 124 ===
Scipio and Hannibal were famous generals. The former was a Roman, who won great victories; the latter was a Carthaginian, who conquered the Romans in many battles. Hannibal, when a boy, was brought to the altar by his father. There he swore hatred against the Romans. The young man captured many towns in Spain, then he passed over the Alp mountains and often defeated the Romans in Italy. Scipio, near the Ticinus River, courageously saved the life of his father, and afterwards, near Cannae, showed himself brave against Hannibal. War was carried across into Africa, and there Scipio defeated Hannibal near Zama. He is called by the Romans, 'Africanus.'
=== § 316, p. 125 ===
Perseus, as a young man, withdrew from the island Seriphus, and, after he came to the mainland, sought Medusa. For a long time, in vain, he was seeking her for he was ignorant of the nature of the location. After a while, Mercury and Minerva showed to him the road. First unto the Graeae, the sisters of Medusa, he came. With their help he received winged shoes and a magic helmet. Mercury and Minerva gave to him a sword and mirror. Then, after he put on his feet the winged shoes, he ascended into the air. For a long time he flew through the air; finally, however, to that place where Medusa was living with the other Gorgons he came. The Gorgons were monsters whose heads were wholly covered with snakes. But their hands were made from bronze.
=== § 337, p. 132 ===
If you are doing well, it is good; I am also doing well. This letter I am gladly writing to you. By the advice of my doctor I am wintering in Italy with my parents. With you snow covers everything, but with us here we rarely see snow. The air is mild; the heavens smile. Sometimes I walk on the shore or I wander in the spacious gardens, for the grass and trees are green there. From here I see Mt. Vesuvius, from here nearly the entire city, from here the beautiful islands situated in the sea. Daily, I give much of ''my'' work in the Latin language. I learn this language much easier than Greek. But now I form the end of the letter; soon I will tell to you everything in person. Farewell, my friend.
=== § 339, p. 133 ===
=== § 368, p. 142 ===
=== § 370, p. 143 ===
=== § 391, p. 149 ===
=== § 406, p. 156* ===
After this battle, Caesar spoke to his soldiers in a meeting thus: they had fought bravely; and so the enemy has been defeated everywhere and has fled to the mountains and the marshes; he [Caesar] would give the booty to them; he [Caesar] knew that they were tired on account of the long war and that he would send them to Italy at once; he [Caesar] wanted to remain in Gaul through the winter, but the following summer he [Caesar] would lead his own (men) to the Germans; many captives had been sent to Rome, and the Roman people were delighted by their victory.
=== § 408, p. 156-7* ===
When Perseus saw this, he took out his sword, and, after donning his magic boots, flew through the air. Then he suddenly attacked the monster from above, and gravely wounded its neck with his sword. When the monster felt the wound, it let out a horrible noise and without delay submerged its entire body in the water. As Perseus flew around the shore, he awaited its return. But meanwhile, the sea was being tainted everywhere with blood. After a short time the beast exposed its head again; nevertheless it was soon wounded by Perseus with a more severe strike. Then it again submerged itself in the waves, and thereafter was never seen again.
After Perseus descended to the shore, he first removed his magic boots; then came to the cliff where Andromeda was bound. But she had put away all hope of salvation, and when Perseus arrived, she had nearly died of fear. The former loosened her bonds at once and returned the girl to her father. Cepheus was affected with great joy on account of this action. And so he gave Andromeda to Perseus in matrimony. Perseus lived with his wife in this region for a few years, and existed in great honor among all Ethiopians.
=== § 423, p. 163* ===
[From Caesar's ''Commentāriī De Bellō Gallicō'' Book I.I]
All of Gaul is divided in three parts, one of which the Belgae inhabit, the Aquitani another, and the third those who are called Gauls. Of all of these the bravest are the Belgae because they are neither near the Roman provinces nor do traders come to them often; and they are the nearest to the Germans, who live across the Rhine, and with whom they wage war. For this reason the Helvetians are also braver than the rest of Gaul. They struggle on account of nearly daily battles with the Germans, when they restrain them from their own territories or they themselves wage war in the Germans' territories. This part that the Gauls occupy begins at the river Rhone; and is stopped at the river Garonne, the ocean, and the Belgian territories.
=== § 438, p. 168* ===
Certain mice had a meeting once, for they greatly feared a cat. Plans that were put forward was not pleasing to all. Finally one mouse spoke thus: "We ought to tie a tinnabulum to the cat's tail. Thus truly on account of his sound we shall be warned and shall be able to flee. Who of us wishes to do this?" But none of the companions was persuaded to tie the tintinnabulum to the cat, and he himself was unwilling. This story teaches that very many are bold in offering advice but are afraid of the very risk [of doing so].
=== § 439, p. 168* ===
One time, Nasica came to the house of the poet Ennis and asked about him. The slave-girl responded that Ennius was not at home. But Nasica felt that that girl said this on account of the master's command and that Ennius was home. A few days later Ennius came to Nasica's house. She exclaims to him that Nasica is not at home. Then Ennius said, "What? Do I not know your voice?" Hereupon Nasica replied, "You are a shameless man. I believed your slave-girl; you do not believe me myself?"
=== § 440, p. 168-9* ===
[From Caesar's ''Commentāriī De Bellō Gallicō'' Book I.II]
Oregetorix was the most famous of the Helvetians for a long time. He was led by desire for the kingship and created a conspiracy of the nobility. Then he persuaded the state to hasten from their own land with all of their troops. It was easy to persuade them because the Helvetians are enclosed on all sides by the nature of the place: on one side the river Rhine, the broadest and deepest, which divided the land of the Helvetians from the Germans; on the other side by the very high Jura mountain, which is between the Sequani and the Helvetians; on the third side by lake Lemannus [Geneva] and the river Rhine, which divides our province from the Helvetians. On account of the multitude of men and the glory of war they reckoned themselves to have a small territory, which extended 240 miles in length and 180 miles in breadth.
=== § 449, p. 173* ===
# Lacaenus said to his son while hastening to battle, "either on a shield or with a shield." (A Greek saying based on the fact that slain warriors would be carried home upon their shields.)
# Leonidas said to the soldiers, "The enemies are near us," to which he responded, "Now we are near the enemy."
# Thales, having been asked, "What is common to men?" responded, "Hope; for truly now they have this who have nothing at all."
# A Corinthian spectator asked, "You make strong and high walls. Which women inhabit this city?"
# A certain man asked Aristotle, "What is friendship?" Aristotle replied, "One soul in two bodies."
# Cicero said, "The one that cannot tame an army is the general who cannot tame himself."
=== § 451, p. 173-4* ===
The Helvetians, influenced by these things and having been agitated by the authority of Orgetorix, determined to buy the maximum number of carts, prepare a supply of grain, and strengthen peace and friendship with neighboring nations.
Meanwhile Orgetorix assumed the position of ambassador towards the nations.
During this quest he persuaded Casticus, a Sequani, whose father had possessed the Sequani kingdom for many years and had been named friend of the Roman people by the Senate, to seize the kingdom in his own nation.
He persuaded this man to do the same for the other chiefs.
Influenced by Orgetorix's speech, these chiefs offered hostages amongst themselves, and they hoped to be able to occupy the entirety of Gaul by themselves.
The Helvetians however did not approve of this meeting.
Therefore they gathered together a multitude of men from the fields to avert Orgetorix's plans.
But at this time Orgetorix suddenly died.
=== § 479, p. 184-5 ===
=== § 494, p. 190-1 ===
== Reviews ==
=== § 68, p. 38 ===
=== § 69, p. 38 ===
=== § 70, p. 39 ===
=== § 71, p. 39 ===
=== § 72, p. 39 ===
# Rule: The subject of a sentence is in the nominative case.<br>''Equus natat.''
# Rule: A verb agrees with its subject in number and person.<br>''Equī natant.''
# Rule: The object of a verb is in the accusative case.<br>''Puella equum exspectat.''
# Rule: The word enoting the owner or possessor is in the genitive case.<br>''Equus puellae natat.''
# Rule: The cause of and action may be expressed by a dependent clause introduced by ''quod''.<br>''Equus natat quod puella equum exspectat.''
# Rule: The indirect object of a verb is in the dative case.<br>''Rēgīna puellae equum dat.''
# Rule: Plase where is commonly expressed by a phrase consisting of a preposition, usually ''in'', with the ablative case.<br>''Puella in agrō equum spectat.''
# Rule: -.<br>''Quis puellae equum dat?''<br>''Rēgīnane puellae equum dat?''<br>''Cuius equum rēgīna puellae dat?''
=== § 115, p. 54 ===
=== § 116, p. 54 ===
=== § 117, p. 55 ===
=== § 118, p. 55 ===
=== § 119, p. 55 ===
# Rule: Adjectives agree with their nouns in case, gender, and number. <br>''Ea puella equum bonum et parvam habet.''
# Rule: A predicate noun agrees in case with the subject of the verb. <br>''Cornēlia est puella.''
# Rule: A predicate adjective agrees in case, gender, and number with the subject of the verb. <br>''Iūlia et Cornēlia sunt amīcae.''
# Rule: An appositive agrees in case with the noun it explains. <br>''Cornēlia puella equum probat.''
# Rule: Certain adjectives meaning near, fit, friendly, pleasing, like, and their opposites may be accompanied by a dative to show the person or the thin toward which the quality of the adjective is directed. <br>''Equus Cornēliae grātus est.''
=== § 163, p. 70 ===
=== § 164, p. 70 ===
=== § 165, p. 70 ===
=== § 166, p. 71 ===
=== § 167, p. 71 ===
# Rule: The means by which an action is accomplished is expressed by the ablative without a preposition.<br>''Sociōs vulnerōs scutīs portāvērunt.''
# Rule: The ablative with cum is used with abstract nouns to denote the manner of an action; but cum may be omitted if an adjective modifies the noun of the phrase.<br>''In eō locō cum studīo pugnāvērunt; sed prō eō vīcō magnā cūrā pugnāvērunt.''
# Rule: The ablative with cum is used to show accompaniment.<br>''Is lēgātus in Italiam cum sociīs properāvit.''
=== § 203, p. 86 ===
=== § 204, p. 86 ===
=== § 205, p. 87 ===
=== § 206, p. 87 ===
=== § 207, p. 87 ===
# Rule: Place from which is expressed by the ablative with ''ā'' (''ab''), ''dē'' or ''ē'' (''ex'').<br>''Ab urbē Horātius properat.''<br>''Dē pontē Horātius desiluit.''<br>''Ē portā Horātius properāvit.''
# Rule: The place to which is expressed by the accusative with ''ad'' or ''in''.<br>''Ad pontem Horātius cucurrit.''<br>''In flūmen Horātius desilit.''
# Rule: The ablative without a preposition is used to express cause.<br>''Multīs vulneribus mīlitēs dēfessī sunt.''
# Rule: Cause may also be expressed by a prepositional phrase consisting of ''ob'' or ''propter'' with the accusative, or of ''dē'' or ''ex'' with the ablative.<br>''Ob virtūtem Horātiī eum laudāmus.''<br>''Rōmānī multīs dē iniūrīs cum Helvetiīs pugnāverunt.''
# Rule: -<br>''Ad pontem contrā hostīs Horātius properat.''<br>''Ante pontem inter sociōs Horātius apud hostīs pugnāvit.''<br>''Ob iniūriās per urbem et trāns pontem Horātius, et post Horātium cīvēs, properāvērunt.''
# Rule: -<br>''Ab urbe et ē portās cum sociīs prō Rōmā Horātius, sine terrōre, properat.''
# Rule: -<br>''Nostrī dēfessī sunt.''<br>''Dux dēfessōs ā proeliō dīmīsit.''
=== § 252, p. 104 ===
=== § 253, p. 104 ===
=== § 254, p. 104 ===
=== § 255, p. 105 ===
=== § 256, p. 105 ===
=== § 301, p. 120 ===
=== § 302, p. 120 ===
=== § 303, p. 121 ===
=== § 304, p. 121 ===
=== § 305, p. 121 ===
=== § 362, p. 140 ===
=== § 363, p. 140 ===
=== § 364, p. 141 ===
=== § 365, p. 141 ===
=== § 366, p. 141 ===
=== § 415, p. 160 ===
=== § 416, p. 160 ===
=== § 417, p. 161 ===
=== § 418, p. 161 ===
=== § 419, p. 161 ===
=== § 466, p. 180 ===
=== § 467, p. 180 ===
=== § 468, p. 181 ===
=== § 469, p. 181 ===
=== § 470, p. 181 ===
=== § 506, p. 196 ===
=== § 507, p. 196 ===
=== § 508, p. 197 ===
=== § 509, p. 197 ===
=== § 510, p. 197 ===
=== § 511, p. 197 ===
d9ej33nywjtyirhwgpny5sw2mjtpas0
4640448
4640447
2026-06-16T14:07:31Z
Rcmcola
3394483
/* § 339, p. 133 */
4640448
wikitext
text/x-wiki
This wikibook is an answer key to the revised 1918 edition of Collar's and Daniell's ''First Year Latin''. There are two copies of this edition in the Internet Archive: [https://archive.org/details/collaranddaniel00jenkgoog] and [https://archive.org/details/collardaniellsfi00collrich another copy]).
=== About References ===
The references are to the paragraph numbers (§ ''N'') and the original page numbers (p. ''N'') of ''First Year Latin''.
=== Abbreviations ===
{|
|-
| ''acc'' || accusative
|-
| ''act'' || active voice
|-
| ''abl'' || the ablative case
|-
| ''dat'' || the dative case
|-
| ''gen'' || the genitive case
|-
| ''imp'' || the imperative mood
|-
| ''imperf'' || the imperfect tense
|-
| ''ind'' || the indicative mood
|-
| ''inf'' || the infinitive mood
|-
| ''nom'' || the nominative case
|-
| ''pass'' || the passive voice
|-
| ''perf'' || the perfect tense
|-
| ''pl'' || the plural
|-
| ''pluperf'' || the pluperfect tense
|-
| ''sg'' || the singular
|-
| ''subj'' || the subjunctive mood
|}
=== About Prose Translations ===
All prose translations have been kept as literal as possible. This should not be taken as a model to emulate. Quite contrary, one should hardly ever aim at a literal translation instead of a fluent one.
Answers marked with a * may be written with a little more liberty by a different pupil, though are still more-or-less literal translations.
== Exercises ==
=== § 30, p. 25 ===
# A sailor is singing.
# Sailors are singing.
# A farmer is working.
# Farmers are working.
# A girl swims.
# Girls swim.
# Cornelia draws near.
# Are the girls drawing near? (In a boys-only school this might have stirred the pupils somewhat.)
# Cornelia and the girls are singing.
# Julia works and sings.
# What is approaching?
# Are the sailors swimming?
# Who is walking?
=== § 31, p. 25 ===
# Nauta natat.
# Puellae cantant.
# Quis appropinquat?
# Appropinguantne nautae?
# Cantatne Cornēlia?
# Cornēlia et Iūlia ambulant et cantant.
# Puella cantat, et agricola labōrat.
# Nautae et agricolae labōrant.
=== § 36, p. 27 ===
# Galba has a trumpet.
# Does Galba have trumpets?
# Girls praise Cornelia and Julia.
# A sailor sees a letter.
# Galba calls together the sailors.
# Who sees Galba?
# Whom Galba is seeing?
# The farmer now calls the girls together.
# Do the sailors see land?
# Girls like Cornelia.
=== § 37, p. 27 ===
# Quis appropinquat?
# Nauta et Galba appropinquant.
# Quid agricola habet?
# Agricola terram habet.
# Laudatne Galba agricolae?
# Puella aquam et terram videt.
# Nautae agricolās convocant.
# Iūlia litterās nunc habet.
=== § 41, p. 29 ===
# She walks, calls together, sings.
# Are they calling together? Singing? Praising?
# You (sg.) swim, work, walk.
# We like, draw near, walk.
# You (pl.) are calling together, are singing, are liking.
# They like, she is giving, we are praising.
# Whom are you looking at?
# I praise the inhabitants.
# You (pl.) often praise Julia.
# But we are praising the letter.
# What are you (pl.) giving now?
=== § 42, p. 29 ===
# Natō, natat, natō.
# Labōrāsne/labōrātisne? cantāmus, laudatne?
# Appropinquant, dant, ambulās/ambulātis.
# Laudās/laudātis, natant, labōrat.
# Incolās convocāmus, sed nautās convocātis.
# Puellae aquam nunc spectant.
=== § 46, p. 31 ===
# She delights, we are routing, you set free.
# We are waiting, they carry, you delight.
# We delight, you (pl.) rout, they are setting free.
# Is she freeing? I am freeing, we are carrying.
# They are setting free the farmers' daughters.
# The poet's fortune pleases the queen.
# We are looking at the woman's daughters. (Quite possibly a true story from a boy school.)
# Does Galba's ''daughter'' expect a letter?
# Even the trumpets of the sailors put the inhabitants to flight.
# Whose letter are you carrying?
=== § 47, p. 31 ===
# Nautās rēgīnae convocō.
# Fīliae poetārum terram amant.
# Cuius fīliam liberās/liberātis?
# Laudantne fīliās Galbae?
# Agricolās nunc expectāmus.
# Quem fortūna agricolārum dēlectat?
=== § 52, p. 33 ===
# You have money.
# I teach Julia.
# You often advice the inhabitants.
# Do they frighten the girls?
# Whom are they seeing?
# We advice and we teach.
# What do we have?
# I now see a booty.
# You (pl.) see a trumpet.
# Are you (pl.) warning ''the farmers''?
# They have a letter.
# Julia teaches the poet's daughters.
# The pirates have even the farmers' money.
# The daughters' fate pleases the woman. (Obviously they got married off to better men than the boys of this school became.)
# Why do you warn Julia and Cornelia?
# Whom do you teach and advice?
# The women praise the girls because they work. (Hopefully nothing beyond the chaste exercise of weaving, though.)
=== § 53, p. 33 ===
# Monent.
# Habent.
# Moneō.
# Terrēs/terrētis.
# Vidēmus.
# Puellāsne docet?
# Pīrātamne Iūlia et Cornēlia spectant?
# Cūr pīrātae incolās terrent?
# Pecūniam et praedam habent.
# Fēminam laudāmus quod puellās docet.
# Quis vidēs/vidētis? Quid spectās/spectātis?
=== § 61, p. 35 ===
# A farmer shows the road to a woman.
# Cornelia tells the story even to the girls.
# We dwell on an island.
# Who shows the island to the poets?
# Why are the pirates remaining in the water?
# To whom are you giving the money?
# The sailors show the booty to the farmers.
# The inhabitants are approaching on the road and they are looking at the queen.
# They like the mistress because she tells stories.
=== § 62, p. 35 ===
# Cuī fēminam dēmonstrās/dēmonstrātis?
# Iūliae letterās dēmonstrō.
# Rēgīnae fābulās narrant.
# Fīlia Galbae nautīs pecūniam dat.
# Habitantne pīrātae in īnsulā?
# Cuius fīliae in viam appropinquant?
=== § 66, p. 37 ===
# Why are the poets remaining in the woods?
# To whom are you telling about the queen's victory?
# I see Julia and Cornelia in the portal.
# In Germany and Greece they often assemble the farmers.
# Do they live in the province?
# The sailors' victory frightens the farmers.
# The girls' diligence pleases the woman.
# In the fight we put to flight the pirates of Italy.
# Galba tells about the flight of the pirates.
=== § 67, p. 37 ===
# In prōvinciā Graeciae incolō.
# Silvae prōvinciārum poetīs dēlectant.
# Fīliae Iūliae pecūniam dat.
# Cuī aquam dās/dātis?
# Cuius dīligentiam laudās/laudātis?
# In viā exspectant et silvās spectant.
=== § 75, p. 41 ===
# I see a town.
# We are seeing towns.
# Is the master warning a slave?
# The tribune is looking at a horse.
# The masters' horses delight the slaves.
# Marcus is narrating a story to a friend.
# The masters give the spoils friends.
# We often call together the friends in the town.
# Slaves are approaching, and they are carrying grain and water.
=== § 76, p. 41 ===
# Quis equum tribūnī habet?
# Servī dōna dominōrum nunc habent.
# Amicōsne in hortō habēs/habētis?
# Servus frūmentum tribūnī portat.
# Cuius dōnum Marcō dēmonstrant?
# Oppidum et hortōs oppidī vidēmus.
=== § 83, p. 43 ===
# We are looking at and also approving of the large horses.
# The tribune gives a javelin to a good friend.
# The sailor's welcome gift delights Julia.
# A strong sailor has strong oars.
# A girl sees good slaves.
# Great winds do not frighten sailors.
# Where do you see the strong farmers' grain?
# They are carrying the grain in a large cart.
# The pirates are frightening the farmers because they have javelins.
=== § 84, p. 43 ===
# Carrum magnum habeō.
# Dominus bonus servum bonum habet.
# Atque servō bonō dōnum grātum dat.
# Probatne servus dōnum?
# Magnō in oppidō Graeciae nōn habitant.
# Nautās bonōs nōn convocat.
# Ubi silvam magnam vidēs/vidētis?
=== § 91, p. 45 ===
# Galba is a farmer.
# Galba is strong.
# Julia and Cornelia are my daughters.
# My daughter is small.
# Is your town large?
# Britain is an island of Europe.
# Vesta was a Roman goddess.
# The carts of the Romans were good and strong.
# War is not welcome.
# Wars aren't welcome.
# Greece is a small country of Europe.
# We are friends of the tribune.
# In the large town we see wide roads.
=== § 92, p. 45 ===
# Viae oppidī sunt longae.
# Viae Rōmae nōn erant lātae.
# Viae Britanniae sunt lātae et longae.
# Ubi es/estis?
# Dōna nova tribūnī sunt grāta.
# Deōs laudāmus quod dōna dant.
# Rōmānī sumus sed in Britanniā habitāmus.
=== § 101, p. 49 ===
# The sons of the men are in Britain.
# The men are allies.
# I am a messenger of the allies.
# We are waiting for the small boys, sons of the tribune.
# The boys have Marcus' sword and javelin.
# Who shows the way to the man?
# The battle is long, and the allies are waiting for help.
# A man and sons of the messenger are toiling in the field.
# Why are you giving rewards to the men?
=== § 102, p. 49 ===
# Fīlius nūntī est puer parvus.
# Gladium tuum vidēmus sed pilum tuum nōn habēmus.
# Puerōs parvōs et fēminam terrent.
# Virī sociōs fugant.
# Ubi nūntiī habitant?
# Gladium fīlī meī habeō.
# Bella et proelia Rōmānōs dēlectant.
=== § 105, p. 50 ===
# I see horses in Marcus', friend's, field.
# A wretched messenger is telling a miserable story of the allies' flight.
# They are giving rewards to your friends.
# Money, Cornelia's gift, is pleasing to our son.
# We are free men in a free town.
# The Greek goddesses were many.
# Our associate is miserable because he has no sword.
# They are subduing the Romans in a battle.
# Are you calling your son?
# A miserable slave prepares food for a master.
A bonus question about the translation of 10. for the boys in the back row: Are all slaves miserable because they prepare food for their masters or is this particular slave miserable because he's preparing food for his master or is this particular slave miserable because he's preparing food for a master not his own?
=== § 106, p. 51 ===
# Amīcī nostrī, Mārcus et Galba, sunt miserī.
# Multī carrī in viīs oppidī nostrī sunt.
# Fīliōs miserōs nūntiōrum convocat.
# Ubi equum tuum vides?
# Ventī nautās nōn terrent.
# Fīliī virōrum līberōrum sumus.
# Pīlum dōnum āmicī habeō.
=== § 113, p. 53 ===
# She is, she was, she will be.
# They are, they were, they will be.
# We are, we were, we will be.
# I am, I was, I will be.
# You (sg.) are, you (sg.) were, you (sg.) will be.
# You (pl.) are, you (pl.) were, you (pl.) will be.
# Certainly we were hostile towards Marcus, your son.
# Next to the town were many fields.
# Injuries of the allies were many.
# I see an island near to the (main)land.
# The winds will not be pleasing to the sailors.
# Farmers were not fit for a long war.
# Meanwhile, we will be favourable to your sons.
# Swords and javelins are suitable for a battle.
=== § 114, p. 53 ===
# Sum, sumus.
# Ubi eramus? In oppidō eram.
# Erō, erimus.
# Estne tribūnus? Sociī sunt.
# Interim vir līber eris.
# Oppida nostra Graeciae propinqua sunt.
# Virī in oppidīs nostrīs Rōmae inimīcī sunt.
# Erit magnum proelium in Britanniā.
# Librī Mārcō amicō meō grātī certē erunt.
=== § 124, p. 57 ===
# They were showing, she was preparing, you (pl.) were filling.
# I was telling, you (sg.) were seeing, we were dwelling.
# You (sg.) were overcoming, you (pl.) were having, she was approving.
# You (sg.) were singing, I was freeing, you (pl.) were staying.
# I was frightening, she was calling, you (pl). were delighting.
# I was calling together the lieutenants.
# Farmers were bringing grain and food in small carts.
# Meanwhile they were fighting with swords in forests.
# We were equipping our allies with shields.
# I was calling the lieutenant, my friend.
# They were subduing the tribune and the lieutenant in the fight with javelins.
# Your gifts were pleasing to the gods.
# The village was next to the sea.
=== § 125, p. 57 ===
# Ambulābam sed in agrō exspectābās.
# Armābāmus, manēbant.
# Appropinquābātis et pugnābant.
# In vicō labōrābant.
# Fābulīs et librīs docēbāmus.
# Amicōs vestrōs gladiīs vestriīs liberābātis.
# Cibus Helvetiīs dēfessīs grātus erat.
# Virī pīlīs longīs pugnābant.
# Lēgātus vīcum cibō et frūmentō complēbat.
=== § 130, p. 59 ===
# They will call, they will fill, they will hasten.
# Is she arming? She will overcome, we will keep.
# Will they stay? We will show, I will frighten.
# You (sg.) will work, you (pl.) will teach, I will dwell.
# Where to is the strong farmer hurrying?
# A farmer and boys will hurry to the fields.
# They toil in the fields with great zeal.
# They will carry the grain into the village with care.
# You (pl.) will build boats with great diligence.
=== § 131, p. 59 ===
# Aedificābis.
# Properābit.
# Quis nōn manēbit?
# Tenēbitis.
# Virōs aegrōs magnō cum cūrā portābimus.
# Quō lēgātus properābit?
# In Graeciam properābit atque incolās armābit.
# Ubi amīcī nostrī cum studiō pugnābunt?
# Virī nāvigia cum dīligentiā complēbant.
=== § 135, p. 61 ===
# Has she called? She has called together, she has subdued.
# They have fought, they have expected, they have worked.
# We have hastened, we have built, we have equipped.
# Did I praise? You (sg.) have called, you (pl.) have hastened.
# She has brought, she has delighted, she has given.
=== § 136, p. 61 ===
# Laudāvistī/-istis, dēmonstrāvistī/-istis, narrāvistī/-istis.
# Dedī, portāvī, liberāvī.
# Probāvērunt, cantāvērunt, natāvērunt.
# Dedimus, habitāvimus, dēmonstrāvimus.
=== § 140, p. 62 ===
# She has warned, they have warned, she has taught.
# They have taught, she has had, they have had.
# You (sg.) have frightened, you (pl.) have frightened, have you (sg.) kept?
# I have seen, have they seen? We have stayed.
# She has kept, they have kept, they have frightened.
=== § 141, p. 62 ===
# Complēvī, vīdistī, tenuimus.
# Terruit, habuit, complēvērunt.
# Mānsit, docuī, monuistis.
=== § 145, p. 63 ===
# The boys have filled our cart with grain.
# They have carried a sick girl with care.
# I have seen the shields and swords of the captives in front of the gates.
# The place was not suitable for a battle.
# The lieutenant has hurried to Germany with many men.
# He will show the cause of the war.
# I have spent the winter in Greece with your friends.
# With great risk they have stayed.
=== § 146, p. 63 ===
# Gladiī et pīla captivōs terruērunt.
# Longō in bellō cum tribūnō pugnāvērunt.
# Fēminae in Italiā hiemābant.
# Quis causam bellī lēgātō narrābit?
# Locum armīs complēvērunt.
# Rōmānī cum sociīs prō Rōmā pugnāvērunt.
=== § 148/b, p. 64 ===
{| class="wikitable"
|-
| id dōnum || is nūntius || ea patria
|-
| eius dōnī || eius nūntiī || eius patriae
|-
| eī dōnō || eī nūntiō || eī patriae
|-
| id dōnum || eum nūntium || eam patriam
|-
| eō dōnō || eō nūntiō || eā patriā
|-
| ea dōna || iī nūntiī || eae patriae
|-
| eōrum dōnōrum || eōrum nūntiōrum || eārum patriārum
|-
| iīs dōnīs || iīs nūntiīs || iīs patriīs
|-
| ea dōna || eōs nūntiōs || eās patriās
|-
| iīs dōnīs || iīs nūntiīs || iīs patriīs
|}
=== § 150, p. 65 ===
# I have seen that shield.
# That sword is mine.
# That battle was long.
# I will fight with this sword.
# She has given food for that prisoner.
# That was yours.
# He was showing the danger of those lieutenants.
# We have been in Germany and in the land of the Helvetii.
# Has your daughter been sick?
# That slave's master was tired.
# That victory has delighted the Romans.
# I was hurrying to Britain with that friend.
# Where were you (pl.)?
=== § 151, p. 65 ===
# Iīs armīs pīrātās in ōceanō superābimus.
# Id auxilium Rōmānōs dēlectat.
# In iīs silvīs saepe fuī.
# Fīliōs eōrum agricolārum docuī.
# Eōs sociōs vīdistī et laudāvistī quod cum studiō pugnāvērunt.
# Quō properābatis cum eō puerō?
# Causae eius bellī fuērunt multae.
=== § 155, p. 67 ===
# Who have built that temple?
# Which lieutenants have armed those men?
# What is in that field?
# To whom does Marcus give that reward?
# To which countries is Britain near?
# Whom are you praising?
# Which book Cornelia has praised?
# With which sword have they injured the prisoner?
# What risk are you reporting?
=== § 156, p. 67 ===
# Quis nūntius deōrum erat?
# Quod dōnum eī puerō dedit?
# Cuius scūtum is servus habuit?
# Cui causās eius bellī dēmonstrāvērunt?
# Quem superāvistī?
# Quibus armīs Helvetiōs superāvērunt?
# Quō in vicō habitāvērunt?
=== § 161, p. 68 ===
# She rules, she was ruling, she will rule.
# I am buying, I was buying, I will buy.
# They are leading, they will lead, she was leading.
# She has ruled, they have ruled, she has led.
# They have led, you (sg.) have bought, you (pl.) have bought.
# I have sent, we have sent, she has sent.
# We are sending, they are sending, they will send.
# This farmer has many fields.
# He will send grain into a big town with boats.
# He will send grain into a village with strong horses.
# Who will lead the horses on the way?
# Sons of the farmer, Marcus and Galba, have led the horses, and they will lead (them) today.
# Then they will buy new arms.
# Formerly the Romans have ruled Italy well.
=== § 162, p. 69 ===
# Regunt, rēxērunt, regent.
# Dūcit, dūcēbat, dūcet.
# Ēmī, ēmimus, ēmērunt.
# Mittō, mittam, mīsī.
# Mittis, mittes, mīsistī.
# Ōlim Rōmānī multās terrās habuērunt.
# Eās terrās saepe nōn bene rēxērunt.
# Tum sociī auxilium mīsērunt.
# Quae puellae in Italiā hiemāvērunt?
# Lēgātum cum iīs captīvīs in Italiam mittam.
=== § 171/d, p. 75 ===
=== § 173, p. 75 ===
# Today I have seen the king and the general.
# We have seen the heads of many foot soldiers.
# Both kings and generals have led our soldiers.
# Besides, the horsemen were fighting bravely for the king and the general.
# They have overcome the allies with courage and zeal.
# They have injured many farmers with stones and javelins.
# Certainly the bravery of the horsemen and also the zeal of the foot soldiers will delight the legate.
# Who will procure shields for these horsemen?
# We have sent our soldiers in the forest too.
=== § 174, p. 75 ===
# Imperia rēgis fuerunt multa.
# Imperia rēgum probābimus.
# Helvetiōs virtūte eōrum mīlitum superābimus.
# Cum duce hiemābō.
# In oppidō rēgem vīdī.
# Is rēx erat dux bonus et benē rēxit.
# Cibum peditibus miserīs ēmit.
# Et arma et frūmenta in id oppidum mīsit.
=== § 181, p. 77 ===
# She will take, she takes, they take.
# I am hurling, I will hurl, I was hurling.
# They have taken, she has thrown, we have thrown.
# We have fled, we are fleeing, we have sent away.
# They running out from the conference.
# They will flee from (the vicinity of) the village into fields.
# She has fled (down) from the town to the ocean.
# Who have sent letters to the king?
# They have hurled javelins down from the walls of this town.
# He has sent the tired soldiers away from the battle.
# Why are you fleeing from that place?
# They will take our wagons.
=== § 182, p. 77 ===
# Iaciet, iacient, iaciunt.
# Iacis, iaciēs, iēcistī.
# Pedēs equitim vulnerāvērunt.
# Ex Ītaliā in prōvinciam properābō.
# Et fēminae et puellae ex agrīs fugiēbant.
# Ā Germāniā in Ītaliam properāvērunt.
# Lēgātum ad conloquium dūxit.
=== § 187, p. 79 ===
# For many reasons the Romans did not send help.
# They have injured these men with stones and javelins.
# They have many wounds in (their) heads and bodies.
# Today the fathers of the sons will grieve because of the wounds.
# Our general will praise the centurions because of the great victory.
# The peril of the scouts has frightened the soldiers.
# At that time you were not fleeing onto the walls of the town on the account of injuries.
# For the lack of food we were in great danger.
# The legate has led the horsemen and the foot soldiers to a conference.
=== § 188, p. 79 ===
# Vulneribus saepe dēfessī fuimus.
# Mīlitēs nostrōs virtūte studiōque eōrum laudābo.
# Patrēs nostrī diū pugnābunt et multam praedam capient.
# Quis centuriō pīla dē mūrō iaciēbat?
# Ob inopiam cibī aquaeque Marcus et Galba, centuriōnēs, nōn cum virtūte pugnāvērunt.
# Soror mea dolet quod fēminae Britanniae miserae sunt.
# Interim explōrātōrēs imperia ducis narrābant.
=== § 191, p. 81 ===
# The victory of enemies has frightened the citizens of the city of Rome.
# I have not seen the hills and the mountains of Italy.
# The scouts and centurions have fled out from the Sabines' territory.
# The Romans have had many boats and ships on the sea.
# Because of a great danger the citizens carry food and grain into the city.
# We too will send cohorts, and we will overcome the enemies.
# The town was near a mountain.
# The citizens' bravery was pleasing to the general.
=== § 192, p. 81 ===
# Habēmusne multās navīs hodiē?
# Ōlim in collīs montibusque incolēbant.
# Fīnēs Rōmānōrum erant lātī.
# Iī cīvēs nōn idōneī bellō sunt.
# Quī pīla dē mūrīs urbium iaciunt?
# Puerī ignīs magnōs in urbe vident.
=== § 197, p. 83 ===
# Our men have seen a centurion among the prisoners.
# Neighbour(ing tribe)s lament account of that victory of the Romans.
# Why the cohorts were fleeing through the woods to the town?
# With care you (pl.) have taught your daughters with books.
# The horsemen and the foot soldiers are in front of the gate.
# We will stay in the city without danger.
# And they even have carried out from that city many things.
# She has led the scouts across a wide field.
# He was in the province with many soldiers.
=== § 198, p. 83 ===
# Post id proelium nostrōs in Germāniam mittet.
# Oppidum sine auxiliō cēpērunt.
# Fīnitimī contrā hostīs fortiter pugnābant.
# Ante oppidum erat collis.
# Apud lēgātum nūntius exspectābat.
# Per Ītaliam properābimus et apud eōs montīs hiemābimus.
=== § 210, p. 89 ===
# Caesar was a daring leader of the Romans.
# The authority of this leader has been great.
# All soldiers greatly liked Caesar because he has often overcome the enemy.
# In a war the hardships of soldiers were often severe.
# Enemies were many and brave, and they were throwing many javelins at the Romans.
# But our cohorts did not flee from the public danger.
# They have fought bravely for Rome.
# That war was short.
=== § 211, p. 89 ===
# Gladius Rōmānōrum et brevis et gravis erat.
# Pedes socium audācem habuit.
# Nostrī multās gravīs portābant.
# Dōna omnibus amīcīs meīs dabō.
# Dux equitum ācrium propter multōs labōrēs dolēbat.
# Omnīs trībūnōs ā colloquiō dīmīsit.
=== § 214, p. 90 ===
# I am hearing, I was hearing, I shall hear.
# Does she hear? She was hearing, she will hear.
# They are hearing, they were hearing, they will hear.
# We are hearing, we have heard, you (pl.) will hear.
# I have heard, you are hearing, they have heard.
# You are coming, she is coming, you (sg.) did come.
# She has come, we are coming, we have come.
# Do you (sg.) find? You (pl.) have found, you (pl.) are finding.
# I have found, she is finding, she has found.
=== § 215, p. 90 ===
# Repperit, repperērunt, vēnērunt.
# Audīs/audītis, vēnistī/vēnistis, audīvit.
# Audīvimus, reperiēbāmus, vēnimus.
# Venis/venitis, reperiēbant, veniemus.
# Audiam, audimus, audivērunt.
# Vēnit, vēnit, audiunt.
# Dēfendent, oppugnāvērunt, dēfendit.
=== § 220, p. 92 ===
# During the winter winds on the sea are violent.
# In summer the farmers were toiling on the fields.
# At daybreak they came to Caesar.
# Caesar has waged war with strong enemies.
# In a few years he has conquered all provinces.
# At what time in the night did you (pl.) come into the city?
# They capture ten scouts during the second hour of the battle.
# At that time a messenger showed the document to a legate.
=== § 221, p. 92 ===
# Brevī tempore aestās grāta veniet.
# Secundā hōrā noctis ea imperia audīvimus.
# Decem vulnera in corpore peditis repperit.
# Prīmā lūce Caesar eam cohortem inter collem montemque mīsit.
# Prīmō annō bellī ā prōvinciā fūgērunt.
# Cūr hieme bellum cum Rōmānōs nōn gessērunt?
=== § 225, p. 95 ===
# They will have bought, I had waged, you (pl.) had spent the winter.
# They had shown, you (pl.) will have heard, we had subdued.
# I shallhave kept, I had filled, you (sg.) had armed.
# You (sg.) will have dwelt, she had called, I shall have stayed.
# You (pl.) will have told, you (sg.) had sent, we shall have fled.
# I had expected, I shall have suffered, she will have strenghthened.
# She had kept in check, I had ruled, you (sg.) will have hastened.
# Labienus had praised the chief for courage.
# A strong man will have had friends many and brave.
# Caesar had waged war not only in Gaul but also in Britain.
# At what time of the night you (sg.) will have taken the arms?
# The Gauls had defended the town with great bravery.
# The Roman People had liberated the citizens of that state.
=== § 226, p. 95 ===
# Terruerimus, vēnerās, dīmīseritis.
# Pugnāverit, cēperat, dēfenderant.
# Dūxerāmus, vulnerāverint, iēcerit.
# Aedificāveris, reppererāmus, portāverint.
# Pōpulus Rōmānus longō temporē Gallōs sustinuerat.
# Prīncipēs omnīs cīvitātēs convocāverant.
# In eō locō Labiēnus multa tēpa reppererit.
# Gallī auxilium exspectāverant.
# Tandem eum collem oppugnāverāmus.
=== § 232, p. 97 ===
# The general has sent those horsemen and foot soldiers to Capua.
# Finally, because of public danger, he has hurried out of Italy to Carthago.
# These soldiers had come from Athens, and they were fighting in Gaul.
# He sent a messenger to Corinth at the second hour of that night.
# Those legates had carried the plunder to Rome.
# In that island a bold people had dwelt.
# I had been a friend of this centurio.
# From this territory all chiefs had fled to Delphi, because at that time enemies were preparing for a war.
=== § 233, p. 97 ===
# Delphīs Athēnās vēnerant.
# Domō frāter meus Corinthum properāvit.
# Caesar nūntiōs per illās cīvitātēs mīserat.
# Hīs annīs Gallī amīcī fuerant populī Rōmānī.
# Hī hostēs magnā virtūte cum Caesar pugnāverint.
# Hoc pīlum, ille gladius est.
=== § 240, p. 100 ===
# She loves, he is loved.
# He was loving, she was loved.
# She will love, he will be loved.
# They love, they are loved.
# They were loving, they were loved.
# Will they love? Will they be loved?
# We are loving, we are loved.
# I advice, I am adviced.
# I was advicing, I was being adviced.
# I will warn, I will be warned.
# You (pl.) will warn, you (pl.) will be warned.
# You (sg.) warn, you (sg.) are warned.
=== § 241, p. 101 ===
# Laudās/laudātis, laudāris/laudāminī.
# Laudābant, laudābantur.
# Laudābis/laudābitis, laudāberis/laudābiminī.
# Doceō, doceor.
# Docēmus, docēmur.
# Docēbimus, docēbimur.
# Docent, docentur.
=== § 244, p. 101 ===
# This boy was praised by my brother.
# This booty will be brought to Rome by Caesar.
# By whom is power not loved?
# Many stories about Britain will be told by these messengers.
# The town is stormed by the soldiers.
# In this fight ten men are wounded by the Gauls.
# The grain will be brought with ships.
=== § 245, p. 101 ===
# Omnēs hī Gallī āb illīs equitibus sustinebuntur.
# Frātrēs meī ab illō puerō laudābantur.
# Auxilium ā hostibus expectātur.
# Paucae cohortēs ā prīncipe vidēbantur.
# Rōma āb omnīs Rōmānīs amābātur.
=== § 250, p. 103 ===
# That woman you see is Cornelia's mother.
# The merchants are bringing many (things) into Germany.
# The brave enemies by whom our native land is laid waste are Romans.
# These men with whose bravery and determination the city was guarded will come home from war.
# The towers which were built with care will be destroyed by the enemy.
# The hostages, who are liberated by the Romans, will hurry to Athens.
# The commander of legions whom Caesar sent across the river was Labienus.
=== § 251, p. 103 ===
# Arma, quae portāvimus, nōn bona sunt.
# Eā aestāte cum Caesare, quī prōvinciam dēfendit, pugnābi(ti)s.
# Cōnsilium, quō illud oppidum vastātur, laudābō.
# Caesar decem legiōnēs in bellīs, quae cum Gallīs gessit, habuit.
# Fēmina, cui viam dēmonstrāvī, māter huius obsidis miserī est.
=== § 258, p. 106 ===
# She rules, he's ruled.
# She was ruling, he was ruled.
# She will rule, he will be ruled.
# They rule, they are ruled.
# They will rule, they will be ruled.
# You (sg.) rule, you (sg.) are ruled.
# You (sg.) were ruling, you (sg.) were ruled.
# You (sg.) will rule, you (sg.) will be ruled.
# We are ruling, we are ruled.
# You (pl.) rule, you (pl.) are ruled.
# I shall rule, I shall be ruled.
# They are seizing, they are captured.
# She was seizing, he was being captured.
# She will seize, he will be captured.
# They will seize, they will be captured.
# You (sg.) will seize, you (sg.) will be captured.
# You (sg.) seize, you (sg.) are captured.
# You (sg.) were seizing, you (sg.) were being captured.
=== § 259, p. 106 ===
# Dūcit, dūcitur.
# Dūcent, dūcentur.
# Dūcunt, dūcuntur.
# Dūcis/dūcitis, dūceris/dūciminī.
# Dūcēmus, dūcēmur.
# Mittimus, mittimur.
# Mittiturne? Mittunturne?
# Mittet, mittētur.
# Mitteris/mittiminī, mittēris/mittēminī.
# Gerēbant, gerēbam.
# Gerimus, gerēmus.
# Iacimus, iacimur.
# Iaciēbāmus, iaciēbāmur.
# Quis recipit? Quis recipiēbatur?
=== § 261, p. 107 ===
# Ambassadors have come into consul's camp for peace.
# At last these legates are led to the consul.
# They will be received well by the consul.
# No longer is the enemy's city defended.
# The weapons which were thrown down from the walls wounded many.
# The soldiers of the consul are not defeated often by the Gauls.
# The peace will be welcome to the Roman people.
=== § 262, p. 107 ===
# Labiēnus paucīs cum cohortibus Rōmā in Galliam mittētur.
# Illa oppida Galliae fortiter dēfendentur.
# Legiō ex castrīs dūcuntur.
# Hodiē multae cīvitātēs Galliae vincuntur.
# Nova cōnsilia sociōrum nostrōrum fīnitimīs nūntiābantur.
# Illī recipientur ā Caesare, quī Helvetiōs vīcit.
=== § 269, p. 109 ===
# His shield was heavy.
# Their friends have been soldiers.
# Their zeal is praised.
# I will stay with you (pl.) because of the storm.
# The war is waged against them.
# Is Marcus with you (sg.)?
# He was walking with her.
# They will hurry to Athens without you (pl.).
# We are miserable, you (pl.) are sick and exhausted.
# All your (pl.) plans are acceptable to us.
# His father and mother were received well by you (pl.)
# The remaining chiefs, who were arming themselves, did not come to the meeting.
# And thus he calls a centurion to himself and explains the plan to him.
# Caesar led the foot soldiers out the camp daily.
=== § 270, p. 109 ===
# Māter eius et pater meus tē vīdērunt.
# Nunc sunt cum mē.
# Eī, eī, eīs praemia dabō.
# Castra eōrum oppugnātur.
# Egō in oppidum tēcum properābō.
# Magnō cum labōre nōs līberāmus.
# Ea sē gladiō eius patris vulnerāvit.
# Reliquī sē interficient.
# Ea aestāte oppida eōrum ā Gallīs vāstābuntur.
=== § 272, p. 110 ===
# She hears, she's being heard.
# She was hearing, she was being heard.
# She will hear, she will be heard.
# We hear, we are being heard.
# We will hear, we will be heard.
# I shall hear, I shall be heard.
# You (pl.) hear, you (pl.) are being heard.
# You (pl.) will hear, you (pl.) will be heard.
# You (sg.) hear, you (sg.) are being heard.
# I was hearing, I was being heard.
# They hear, they are being heard.
# They were hearing, they were being heard.
=== § 273, p. 110 ===
# Impediō, impedior.
# Impediēbam, impediēbar.
# Impediam, impediar.
# Impediunt, impediuntur.
# Impedient, impedientur.
# Reperit, reperītur.
# Reperiēbat, reperiēbatur.
# Reperiet, reperiētur.
=== § 284, p. 113 ===
# Caesar, however, sent his own soldiers across the river.
# Caesar will find his (not his own) brother in the camp.
# That sick man was deprived of water.
# Afterwards that state was lacking food and grain.
# He kept soldiers away from this people by buildings and money for a long time.
# Because of want of arms the Germans left off from the battle.
# Our (troops), who had hurried to the camp of the Germans, kept them away from weapons.
# A river was cutting off our troops from the road.
# At that time boats were being built near the river by the enemy.
=== § 285, p. 113 ===
# Amīcī nostrī pecūniam carēbat.
# Hostēs sua aedificia dēfendent.
# Nōs ā cūrā līberābis/līberābitis.
# Caesar sua cōnsilia dē pāce suīs nūntiāvit.
# Posteā ex omniā potestāte Germānōs prīvābunt.
# Reliquī prīncipum ab suīs oppidīs interclūdēbantur.
=== § 287, p. 114 ===
# A man has been loved, a woman has been loved, a war has been loved.
# The men have been loved, the women have been loved, the wars have been loved.
# The soldiers had been warned, the boy will have been warned, the town had been warned.
# A farmer has been captured, a city has been ruled, a province had been ruled.
# I have been captured, I had been captured, I shall have been captured.
# You (sg.) have been heard, you (sg.) had been heard, you (sg.) will have been heard.
# We have been heard, we had been heard, we shall have been heard.
=== § 288, p. 115 ===
# Gallia monita est, Gallia monita erat, Gallia monita erit.
# Aedificia capita sunt, aedificia capita erant, aedificia capita erunt.
# Fīnēs ā Germānīs rectī erant.
# Urbēs dēfensae erunt.
# Itaque audītae erimus.
=== § 290, p. 115 ===
# Many towns in Italy have been built by the Romans.
# Few Germans there have been killed with our javelins.
# Your words will have been heard by me.
# At that time the commander was cut off from the baggage and carts.
# The war, which has been waged by Caesar, was long.
# The soldiers, who were sent to Gaul by him, lacked grain.
# The booty that had been captured by our commander has been carried to Rome without delay.
# In a meeting Caesar said to his own (troops): "My plans have not been hampered by the enemy."
=== § 294, p. 117 ===
# The arrival of the legions delights us.
# Our army, however, has cut off the Germans from supplies.
# Between our (troops) and the enemy was a lake.
# Consuls were commanders of Roman armies.
# They had fought violently for a long time on the flanks.
# Labienus' camp was protected with a swamp and a lake.
# In the ports of Greece we have seen many ships during the winter.
# We observed the armed force of the enemy.
=== § 295, p. 117 ===
# Et pedibus et cornibus pugnant.
# Inter montīs multī lacūs āb eīs videntur.
# Ab adventū mercātōrum dēlectātī erāmus.
# Haec domus est mea, illa est tua.
# Prīmā luce autem commeātūs ē castrīs ad portūs portāvērunt.
# Statim Rōma ā manibus cīvium mūnita est.
# Cūr domū properās/properātis?
=== § 299, p. 119 ===
# Which way is shorter?
# Which way is the shortest?
# Nevertheless, the cavalry had travelled through the neighbouring villages.
# The Germans asked for peace from the Roman senate.
# The friendship of the allies will be very pleasing to the Roman people.
# Our army will make an attack upon the enemy.
# This river is wide, but the sea is wider.
# The Gauls certainly were very brave in the war.
# Where have you seen more brave citizens?
=== § 300, p. 119 ===
# Domus tua novissima est.
# Imperātōr equitātūs per iter longius mīsit.
# Aestās in Brītanniā nōn brevissima est.
# Hōc pīlum gravius est.
# Pāx autem ab omnibus cīvitātibus Galliae petetur.
# Impetum in turrem parvō cum studiō faciunt.
# Excercitus per silvās palūdēsque iter faciēbat.
=== § 311, p. 123 ===
# A large part of the route is narrow but very easy.
# At daybreak we saw a part of the enemy on the mountain.
# That of all the roads of the city was shortest.
# The men of Britain are different from the men of Italy.
# Straightaway ten of the soldiers leave off from the battle.
# On a beach the women were grieving because the road was difficult.
# The enemy was fiercest and swiftest ff all the Gauls.
# The most difficult is often very easy.
# They will strengthen (their) friendship with the nearest tribes.
=== § 312, p. 123 ===
# Habemusne cōpiam armōrum?
# Iter per montīs facile nōn erit.
# Quinque ex amīcīs meīs in lītore mittentur ā mē per iter facilius.
# Pars mīlitum ā reliquō excercitū interclūdēbātur.
# Manus tua similis est meae (manuī).
# Hōc est facillimum omnium itinerum per fīnīs Gallōrum.
=== § 323, p. 127 ===
# Six legions are led into the lower part of the province by Caesar.
# The roads of ''our'' city are narrower by many feet.
# A very large armed force of the enemy had been assembled, and they were preventing the Romans from march(ing).
# They have thrown very many javelins down from the higher ground.
# That tower is ten feet taller than the wall.
# A smaller fort was defended by a hundred soldiers.
# Your part of the work is larger than mine.
# Occasionally our friends give us bad advice.
# I see the top of the mountain.
# The lower (southern) part of Italy was called "Great Greece" on account of many Greek cities (there); the upper (northern) part of Italy, because the Gauls dwelt there, was called "Cisalpine Gaul" or "the Nearer Gaul".
=== § 324, p. 127 ===
# Virī optimī interdum plūrimōs amīcōs nōn habent.
# In itinere plūrimī (virī) interficiēbantur; reliquī in silvām magnam fūgērunt.
# Cornēlia pede altior quam Iūlia erat.
# Gallī plūrēs equitēs quam Rōmānī habēbant.*
# Pars hostium in locīs superiōribus exspectābat.
# Cōnsilium melius senātuī praebitum est.*
# Urbēs maximae centum obsidēs Caesarī mīsērunt.
* While the imperfect tense describes, the perfect tense advances a narrative.
=== § 329, p. 129 ===
# Fathers and mothers love very greatly their own children.
# They give to them very good advice and work for them very diligently.
# At that time we will send ahead a great number of foot soldiers in that large forest, which we see from here.
# From this mountaintop I easily see six cities and a hundred roads.
# In the lowest (southern) parts of the country rivers are very small.
# Our troops have been hindered longer by the lake than the mountains.
# Most of the soldiers have been left behind near the port; the remaining (soldiers) have suddenly attacked the enemy.
# They will build walls with trees and stones.
# This river is wider than that by a hundred feet.
=== § 330, p. 129 ===
# Interdum hostēs Caesaris multō fortius quam mīlitēs Rōmānī pugnāvērunt.
# Sed mīlitēs eius ācerrimē audacissimēque pugnābant.
# Diūtissimē cum Gallīs bella gerēbat.
# Ampla praemia saepe centuriōnibus suīs deit quod multa praeda cēperant.
# In urbe Rōmae ā suīs inimīcīs interfectus est.
=== § 335, p. 131 ===
# At first Caesar pitched the camp on the top of the mountain.
# The camp has been pitched on the top of the mountain by Caesar.
# From this place the enemy have been seen on the large plain.
# Between this mountain and that plain was a river, which was hundred feet wide and five feet deep.
# However, Caesar drew up the battle line and was waiting the enemy's attack.
# For the larger part of the day his horsemen remained in the flanks.
# But the enemy did not attack, because they had a small hope of victory.
# At that time the young lacked corn for many days.
# The hills behind our camp is higher by many feet.
=== § 336, p. 131 ===
# Caesar hanc rem ē plūrimīs nūntiīs audivit.
# Eō diē fidēs Gallōrum parvissima erat.
# Flūmen in eō locō decem pedem altum erat; itaque in lītore tota impedīmenta relīquērunt.
# Hae rēs (mīlitēs) nostrī omnī spē prīvāvit.
# In Italiā sex diēs manēbimus.
=== § 345, p. 135 ===
# He sends a messenger in order that she may warn the citizens.
# A youth is being sent that the citizens may be warned.
# The legion is sent lest the town will be captured by the enemy.
# The legions are fighting bravely to capture the town.
# The boy has come so that he will hear the story.
# The boys have come so they may hear your words.
# We are sending them to govern the province.
# We send them in order that the province is ruled by them.
# You hasten to Gaul in order to wage war.
# We send ahead a hundred soldiers to fortify the camp.
=== § 346, p. 135 ===
# Mittitur ut pugnet.
# Eōs mittīmus ut viam reperiant.
# Mitteris nē in urbem hostēs impetum faciant.
# Mīlitēs ē castrīs dūcentur ut aciēs īnstruātur.
# Veniam tē mātremque (tuam) videam.
# Pugnat ut sē dēfendat.
=== § 353, p. 137 ===
# They come that they may seek peace.
# They came that they might seek peace.
# They will come that they may seek peace.
# They had come that they might have sought peace.
# They were fighting bravely lest they might be overcome by the Gauls.
# They had hurried across the river so they might storm the town.
# The legions will be sent to cut off the enemy from supplies.
# In order that they might defend the port our (troops) have been sent ahead.
# The consul will speak very boldly to rouse the <s>rabble</s> Roman people.
=== § 354, p. 137 ===
# Labōrant ut laudent.
# Labōrābant ut laudārent.
# Labōrābunt ut laudent.
# Labōrāvērant ut laudārent.
# Dē locīs superiōribus pīla iaciēbant ut Rōmānōs impedīrent.
# Prīncipēs convocāverat ut novum cōnsilium audīrent.
# Dē proeliō dēsistent nē interficiantur.
=== § 360, p. 139 ===
# The boy acted in such a way that he was liked by everyone.
# The city has been laid waste lest it would have been captured by the enemy.
# We advice him lest he become a soldier.
# He commanded them not to travel through our province.
# So great is the lack of food that very many are sick.
# The city has been defended so bravely that for ten days it was not captured.
# The enemy have fled to the forests lest they be surrounded by our (troops).
# First Caesar ordered them to give aid to our (troops).
=== § 361, p. 139 ===
# Paucī tam erant ut fugerent.
# Erant tam fortitēs ut nōn fugerent.
# Eum moneō ut fortior sit.
# Lēgātus mīlitēs ē castrīs dūxit ut āciem īnstrueret.
# Postulat ut castra in eō locō pōnant.
# Pālus tantus est ut nostrī impediantur.
=== § 375, p. 145 ===
# She asks what they are doing, they have done.
# She knew what the were doing, they had done.
# I shall tell you why they were toiling, they have toiled.
# They had heard whence the soldiers were coming, had come.
# They asked why they were being praised, they had been praised.
# She knows why they are staying, they had stayed.
# She has told us what those boys had done.
# I asked whether she had been often in Italy.
# Do you know how many years the Romans held Britain?
=== § 376, p. 145 ===
# Tibi dīcam ubi fuissent et quid fēcerint.
# Hī veniunt ut videant, illī ut videantur.
# Dēfessī tam sunt ut hōdiē nōn labent.
# Mē rogāvit ut cūr venissem.
# Audīveram ut ubi fuisset.
# Dūx rogāvit num (illī) omnēs venīrent.
# Scīsne quot mīlitēs veniant?
=== § 383, p. 147 ===
# On the way two rivers, ten feed deep, will be found.
# The memory of these events had roused the army.
# They had marched three miles and (then) the first line of battle was drawn up.
# Caesar ordered that on the right wing were arranged the third legion and the fourth legion on the left.
# Of the three brothers Marcus was the bravest.
# For desire of victory this one legion kept back the Gauls.
# The heavy javelin of the Romans was six feet long.
# The next day they marched eight miles (away) from that place.
# The four scouts, whom had been sent ahead, fled because of fear of the enemy.
=== § 384, p. 147 ===
# Spēs praemī līberōs Marcī incitābat.
# In eō colle decem mīlia peditēs et duo mīlia equitēs īnstructī sunt.
# Impedīmentum excertitūs mīlia passuum ā lītore relictum est.
# Imperātōr secundam legiōnem prō castra īnstruet.
# Adventū duarum legiōnum hostēs ē sinistrō cornū dēcessērunt.
# Timor Caesaris Rōmānōrumque ūnam cīvitātem impedeet.
# Ūnus hominum erat mihi inimīcus.
=== § 388, p. 149* ===
# On one shore of the river there was a city, and on the other was a mountain.
# Of the two men, one was a general, the other was a tribune.
# By the courage of three legions alone the army was defended.
# One legion was placed on the right wing, and the other was placed on the left wing by Caesar.
# I will give neither of the captives food.
# Which boy is your son?
# During the summer there was not a ship in the sea.
# Why are you encouraging both of them?
=== § 389, p. 149 ===
# Caesar virtūtem tōtīus legiōnis laudāverat.
# Uter adulēscēns maiorem virtūtem dēmonstrāvit?
# Caesar sine morā cum sōlā secundā legiōne iter faciet.
# Aliī castra ponēbant, aliī aciēs īnstruēbant.
# Nūllō in locō plūrimās arborēs repperimus.
=== § 396, p. 151* ===
# To come, to give, he is able to leave.
# To be hindered, to be placed, they are able to be placed.
# Receiving rewards is often pleasing.
# Caesar has begun to lay waste to the remaining fields and towns of that state.
# To hear your words is exceedingly difficult.
# The Germans are not able to cut off supplies from the Romans.
# At once the multitude began to beg for peace.
# They ought to defend themselves.
# Who of the entire army was so strong that he endured an enemy attack?
# In the winter, days are five hours shorter than in the summer.
=== § 397, p. 151 ===
# Castra mūrō altō munīre erit facile.
# Auxilium praebēre dēbēs/dēbētis.
# Mīlitēs decimae legiōnis incitāre nōn potest.
# Bellum gerere nōn saepe est optimum.
# Fortēs bonīque esse dēbēmus.
# Aliī pugnāre, aliī fugere coepērunt.
=== § 404, p. 154* ===
# By means of two scouts, Caesar knew that the enemies had marched six miles.
# The allies respond that they will send aid to Caesar immediately.
# The general said that he will give ample rewards to his own (men).
# They all long to be children.
# They all long for Italy to be free.
# They all see the town being bravely defended.
# Caesar ordered that the third line of battle be drawn up at once.
# He knew the Gauls were coming to make an attack.
=== § 405, p. 154 ===
# Legātus suōs turrīs aedificāre iubēbit.
# Sciō duās legiōnēs praemissās esse.
# Per captīvōs cognōvit hostēs cibō carēre.
# Eōs in illā cīvitāte hiemāre iussit.
# Mercātōrēs respondērunt nūllum frūmentum in fīnibus Germānōrum esse.
=== § 413, p. 159* ===
# He can, he was able to, he shall be able to.
# We have been able to, they had been able to, they were able to.
# Do you know why these words of yours cannot be heard?
# Identical were the difficulties of war that he could report to you all.
# Labienus himself knew the causes of war were very many.
# I reckon that I will purchase nothing today.
# They no longer demand that the Roman people proffer ships.
# The centurion who with eight scouts had been send to learn the way has reported that he had not been able to learn the way.
# They all were hoping that Caesar would defeat the Gauls this summer.
# The men themselves say that the weapons cannot be thrown.
=== § 414, p. 159* ===
# Potuimus, poterit, poteram.
# Potuerat, potuerint, poterāmus
# Līberī ipsī nōn iam pācem cupīvērunt.
# Dīcunt sociōs nostrōs hodiē eōdem in periculō esse.
# Putō mē duō diē cum istō amīcō manēre.
# Mercātōrēs nūntiāvērunt multās manūs equitum in mōntēs missās esse.
# Putō tē pugnāre posse.
# Putāvistī mē venīre nōn posse.
=== § 421, p. 162* ===
# Two new rivers have been found by certain bold men.
# I can no longer see any one in front of the house.
# He demanded that the weapons be surrendered at once so that the citizens would be free from fear.
# A certain captive has declared the same thing once again.
# Each one shall be able to reply to some one.
# Some women had not only been disturbed, but also had fled.
# The legate demanded that everyone carry grain out of the region.
# A certain legion was hastening to Delphi on account of a hope for victory.
# This land of yours is like the island.
=== § 422, p. 163* ===
# Quisque dīcit Gallōs appropinquāre.
# Quiddam nōn postulat.
# Illa puella dextrā in manū aliquid habet.
# Parte cuiusque aestātis apud montēs collīsque habitāmus.
# Hodiē fābula nobīs ā aliquō narrābātur.
# Simul quīdam in Caesarem vēniēbant ut auxilium postulārent.
# Sciō quid quemque agere posse.
=== § 430, p. 165* ===
# One town of the allies had been attacked by the enemy for a long time, and fortifications were ravaged daily.
# Because food and weapons have began to be lacking to the citizens, the allies have asked that Caesar send troops to help.
# Therefore Caesar has placed Labienus in charge of one legion and has sent him as an aid to the citizens.
# On the way Labienus ran into the enemy, who came from everywhere to capture the town.
# The javelins were a hindrance to them, but the swords were a great advantage.
# Our men have been superior to the enemy and have overcome them.
# Labienus said that he would be a defense to the citizens.
# Do you know who was at the head of the town?
=== § 431, p. 165* ===
# Virtūs Caesarī saepe nōn dēerat.
# Virīs fortibus praefuit.
# Praesidiō patriae suae erat.
# Annōs multōs bellīs proximīs nōn superfuit.
# Principibus Gallōrum Germānōrumque praestitit.
# Lēgātōs cīvitātibus, quae victae erant, praefēcit.
# Mare multīs pedibus altius est quam ille lacus.
=== § 436, p. 167* ===
# You all are willing, we are not willing, you are more willing
# He did not trust the merchants.
# To be unwilling, to have been more willing
# They wish to persuade you all.
# He is willing to favor me.
# And they do not want to cause injury to you.
# We prefer to be of help to you.
# Why do you not want to help your mother? Lit. Why do you not want to be a help to your mother?
# We reckon he want to rule over the cavalry.
# At sunset the soldiers will capture the enemies' camp.
# For few desire war from these people.
# He commanded the soldiers that they bravely oppose the Gauls.
# Neither the women nor the children were afraid.
=== § 437, p. 167* ===
# Volēbant, nōlam, mālet.
# Auxiliō nostrīs nōlēbant.
# Amīcīs tuīs placēre nōn poterant
# Atque imperātōrī nōn persuāsērunt.
# Eīs imperābit ut mulieribus nōn noceant.
# Illō tempore neque Gallī neque Germānī bellō volēbant.
=== § 447, p. 171* ===
# Some of the soldiers were fleeing and have been captured.
# Hindered by these things on this day, they did not make an attack.
# The other centurion was wounded while fighting in the first line of battle.
# Aid had been sent to our soldiers attacking the camp.
# Certain women left in the town have determined to defend themselves.
# Part of the enemy has been disturbed by the arrival of Caesar and has left at sunset.
# He left the soldiers that were brought back in the winter quarters.
# The multitude of slaves, having been frightened, were fleeing from the city.
# The following day, the camp have moved.
=== § 448, p. 172* ===
# Quīdam vir resistēns ā hoste vulnerātus est.
# Vulnerātī tam fortiter pugnavērunt ut captī esse nōn possent.
# Commōtus difficultātibus itineris legiōnēs suōs rēdūcere cōnstituit.
# Hī equitēs praemissī longē fortiterque Gallōs restitērunt.
# Dē cōnsiliīs tuīs rogātus, nihil dīcam.
# Ducēs captī in Italiam mittentur.
=== § 457, p. 176* ===
# When the enemies had been defeated, he determined to march through the middle of the province.
# With Caesar as consul, the war with the Gauls was long.
# When a certain town had been taken by storm, a camp was placed on the very banks of this river.
# The Helvetians, having been influenced by a lack of everything, sent ambassadors to Caesar concerning surrender.
# With these things having been discovered, all were eager for war.
# Although few were defending it, the Romans were not able to capture this town.
# With the captives having been received into surrender, the general left behind three cohorts as relief for the camp.
# These prisoners had been captured for the same reason while fighting quite bravely.
# Who put the horsemen who had been sent to aid the generals in command?
# When the city had been fortified, the citizens were no longer frightened.
=== § 458, p. 177* ===
# Hīs verba audītibus, magnopere permōvit.
# Urbe captī, mīlitēs captīvēs līberāvērunt.
# Tōtum diem hostēs nostrōs resistēbant.
# Labienō duce, exercitus noster hostibus nocēre potuerint.
# Monte captī, Labienus nostrōs expectābat.
# Ēruptiōne factī, prīmam aciem nostram appropinquāre nōn potuērunt.
=== § 464, p. 179* ===
# He goes, we go, they were going.
# To go, having loved, they shall go.
# They go, they had gone, he has gone.
# He reported the difficulty of navigating.
# This is the reason for sending.
# He came for the purpose of sending letters.
# Diligence in action [acting/doing] pleases the leader.
# The opportunity was not given for fighting.
# Caesar has stopped speaking.
# The time for throwing javelins at the enemy was short.
# They have come near to talk.
# He shall go with you all to enquire about their names.
# He wanted to know where they had been going.
# Labienus ordered that the camp be fortified with a rampart.
=== § 465, p. 179* ===
# Īs, ībant, ierat.
# Ībimus, ieris.
# Quō iērunt?
# Eīs īre persuādet.
# Imperāvit ut eant.
# Causā quaerendī pācem vēnērunt.
# Spatium ōrandī nōn datum est.
# Ad nāvigandum mare appropinquābant.
# Eō diē tria mīllia passuum iērunt et occassū solis casta posuērunt.
=== § 476, p. 183* ===
# He bears, we bear, they shall bear.
# To bear, he shall bear, to have borne.
# They are coming back to bring help.
# They had borne, he had been carried.
# In peace-seeking.
# On account of desiring freedom.
# By increasing men.
# Of bridge-making.
# The legion prepares itself for waging war.
# Many have come together to see the new city.
# The sign had to be given.
# With the signal given, the soldiers marched with the greatest swiftness.
# Everything had been done at once.
# We reckon that the war ought to be arranged.
# He lacked time because of the javelin throwing.
# Weapons are to be brought to the winter-quarters.
=== § 477, p. 183* ===
# Fers, ferunt, tulerat.
# Tulistī, ferēbant, ferendō.
# Auxilium ferēbatur.
# Dīxērunt scūta ferenda esse.
# Oppidī videndī.
# Causā aciēī īnstruendī.
# Bellō gerendō.
# In acrīs vāstandīs.
# Vīs sociōrum cotīdiē auget.
# Vīs hostium ferenda est.
# Cohors celeritāte redūcenda est.
# Lēgātus hīs cōpiīs praesentus erat.
=== § 485, p. 187 ===
=== § 486, p. 187 ===
=== § 491, p. 189 ===
=== § 492, p. 189 ===
=== § 499, p. 193 ===
=== § 500, p. 193 ===
=== § 504, p. 195 ===
=== § 505, p. 195 ===
== Reading Lessons ==
Translations for the reading lessons are kept as literal as possible. These should not be taken as an example neither for translation nor reading.
=== § 96, p. 46-7 ===
Cornelia and Julia are small girls. Where do they dwell? They dwell not in Greece but in a renowned town of Italy. They are inhabitants of Rome. Italy is the native country of the Romans. Rome has wide roads and large temples. The Romans like and approve of war.
<br>
Cornelia is a poet's daughter. The poet often walks in wide gardens. He also sings about the long war and the flight of the Germans because he approves the victory of the Romans.
<br>
Julia is a farmer's daughter. The farmer has horses and new carts. The farmer's horses carry food and grain. The farmer's slaves give water to the horses. Julia likes the horses and praises the slaves. The farmer is a good master.
<br>
Marcus and Galba, tribunes, are friends of the girls. Marcus is a friend of the poet's and tells pleasing stories to Cornelia. Galba shows forests and islands of the sea to Julia. (During the modern times this could, and probably would, end up being understood horribly wrong, and the whole affair would end badly for both Marcus and Galba.)
<br>
A good woman teaches the girls. Cornelia's diligence delights the woman. She calls together the girls in the poet's garden, and she tells stories. The stories of war frighten the small girls.
<br>
They (= presumably the girls and the woman) often prepare gifts for Vesta. Who is Vesta? Vesta is a Roman goddess, and she has a temple. The girls often walk on Roman roads and behold the booty of Germany and Britain.
=== § 138, p. 61 ===
Romulus has built Rome, the renowned city of Italy. The Romans were strong men, and they loved their fatherland. They were fighting often for their fatherland, and with arms they subdued often the Sabines in battle. The Sabines had fine arms, and they fought with great zeal for a long time with long javelins. But the Romans put the Sabines in flight, and they wounded many men with (their) swords.
=== § 158, p. 67 ===
Mars, ancestor of the Romans, was fond of arms, battles and wars. Romulus and Remus, sons of the god of arms, have built Rome. And so, battles and wars delighted the minds of the Romans. The Romans worshipped Mercury, Neptune, and Vesta. Mercury, a messenger of the gods, related commands of the gods to inhabitants of the Earth. Sailors worshipped Neptune, the god of water and sea. Women worshipped Vesta, the goddess of hearth, and they prepared many offerings for the goddess.
=== § 169, p. 72 ===
''Marcus'': My friend told me a good story today.
''Julia'': About what did your friend tell?
''Marcus'': (He told) about Icarus, son of Daedalus, an unfortunate boy.
''Julia'': Where did Icarus live? In Britain?
''Marcus'': He did not live in Britain, but in Crete, a large and famous island. Daedalus conceived and prepared wings for (his) son. These wings he put on Icarus using wax with great care. The wings were pleasing to Daedalus. The he taught Daedalus, the boy, to fly, but Icarus flew too high. An so the sun melted the wax, and the wings fell off.
''Julia'': And what about Icarus?
''Marcus'': Icarus too fell down into the sea.
''Julia'': [https://en.wiktionary.org/wiki/alack Alack], poor Icarus!
=== § 170, p. 73 ===
'''The Romans fight for (their) allies'''
Because injuries have been many, our allies ask for succour. And accordingly, the Romans have sent a legate with men into the land of Helvetians. Presently this legate has called men together in a town. He has bought food and carts, and he has armed the men with swords and shields. Meanwhile the allies have prepared grain. Today the legate will strengthen the spirits of the men. Then he will lead the men in neighbouring lands and will wait for a battle. The spot of that battle is near to the Helvetians('s troops). Our men will fight with great zeal for the allies, and they will subdue the Helvetians. They will lead many prisoners into the town. Those prisoners will pass the winter in our villages.
=== § 200, p. 84 ===
Porsena, an enemy of the Romans, was a famous king. Once he was besieging the city, Rome. Terror of the Romans was great, because Porsena had many soldiers. Frightened women were supplicating the gods in temples. But the bravery of a strong man protected Rome. For with a few comrades Horatius kept back the enemy in front of the Sublician bridge. Meanwhile the citizens dismantled and broke down the bridge in the rear. Then Horatius sent away (his) comrades, and he (alone) defended the bridge against the enemy. Finally the bridge fell down, and among the javelins of the enemy Horatius leapt down into the Tiber and swam to his comrades. This example of bravery saved Rome. Today we praise the deeds of Horatius.
=== § 202, p. 85 ===
Spain, Gaul, and Germany were countries of Europe. Nearest to the Strait of Gibraltar (= [https://en.wikipedia.org/wiki/Pillars_of_Hercules the Pillars of Hercules]) was Spain. The Gauls lived between Spain and Germany, and Germans dwelled on the other side of Rhine. The Germans had a few villages in Gaul too. Because these nations were enemies (of the Romans), the Romans have fought with the Spaniards, the Gauls, and the Germans often.
Between Gaul and the (mediterranean) sea was a new province of Rome. For a long time the inhabitants of that province warded off violence of the Gauls. Finally they requested help from the Romans; for they were greatly afraid of the neighbouring Helvetians. The Helvetians were hostile not only to the province but also to the Germans, and they were fighting the Germans with almost daily battles.
=== § 216, p. 91 ===
M: Today I heard the story about Porsena and Horatius.
I: Who was Porsena? Was he a Roman?
M: Porsena, a noble king, was an enemy of the Romans. With daring soldiers he came into the territories of the Romans, and he attacked the city of Rome.
I: Did the Romans flee because of the danger?
M: Great was the danger of the city and of the citizens, because the enemies were brave and eager, but the Romans did not flee.
I: Did Porsena capture Rome?
M: He did not capture the city, because the bravery of a strong man was protecting the citizens. With few allies, Horatius was bravely fighting for the city.
I: Did Horatius withstand the enemies for a long time?
M: Not for a long time, because the enemies were many, and they were hurling many javelins. But he swam across the river to allies. The Romans praised Horatius on account of his courage.
=== § 222, p. 93 ===
# Once a friend asked a Spartan: "Why does Spart not have walls?" The Spartan responded: "Our city has the very best walls, the courage of the strong inhabitants."
# Once the Spartan king said: "My citizens have never asked, 'How many are the enemies?' but 'Where are they?'"
# Before battle with a Spartan, an enemy said, 'You will not see the sun on account of a multitude of javelins and arrows." "In shade, therefore, we will fight," responded the Spartan.
=== § 234, p. 98 ===
In Gaul, the citizens were many and strong. The chiefs of these citizens feared the power and commands of the Romans. Therefore, they had called together many soldiers and among the mountains and hills they were waiting for the Romans.
In the first year of the war, the Roman people sent Caesar against the Gauls. This leader, with Labienus and foot soldiers and a few horsemen, hasetened out of Italy in the summer and without peril came into the territories of the Gauls. In these places the scouts of Caesar found enemies.
At dawn, the Roman soldiers attacked the Gauls. Intense was the battle. The Gauls were defending the place with stones and heavy weapons. Our men were throwing javelins, and with swords they were withstanding the enemeis. Finally the weary Gauls, on account of a lack of weapons and wounds, fled across the river.
For ten years Caesar waged many wars in Gaul and he sent many captives to Rome.
=== § 236, p. 99 ===
Because the Britons had often sent aid to the Gauls, Caesar sailed to the Britain island. Although frightened by a great number of ships and men, the strong Britains fought with great courage in defense of the homeland. Yet finally they fled from shore. After this battle, the Romans had laid waste to the fields of the enemies, and had seized villages, and had captured much booty. Cassivellaunus, chief of the Britons, sent envoys to Caesar. Caesar demanded hostages. With these hostages and many captives, he came out of Britain into Gaul. On account of this victory, great was the power of the Romans in Britain.
=== § 275, p. 111 ===
At one time, the cities of Rome were rendered a great danger from the Volscians, who were bold enemies of the Roman people. The Volscians were stirred and led by Coriolanus, a Roman. At last, many buildings in the fields were laid waste by the enemies. The citizens armed themselves. The city was supplied food by the consul. In vain the enemies were hindered. Then, because of the great danger, the Romans sent the mother of Coriolanus to him regarding peace, because she was greatly loved by her son. Veturia, the mother of Coriolanus, came into the camp to her son. She found him in the camp. Coriolanus saw her and said, 'My country have conquered me and my allies.' At once he fled from the city with the enemies.
=== § 277, p. 111 ===
Many stories concerning Perseus are told by poets. Perseus was the son of Jupiter, king of the gods. His grandfather was Acrisius. He was wishing to kill Perseus; for on account of the power of the gods, he feared the boy. Therefore, he captured him while he was still a baby, and placed him with his mother in a chest. Then he cast the chest into the sea. Danae, the mother of Perseus, was fearing greatly, for a great storm was disturbing the sea. However, Perseus was sleeping in the arms of his mother.
=== § 291, p. 115 ===
Then Jupiter saw all of this, and he determined to save his son. Therefore he made the sea calm, and he drew the chest to the island of Seraphim. Polydectus was the king of this island at that time. After the ark was drawn to the shore, Danae was sleeping on the sand. After a short time she was found by a man, and she was led to the king. He received well the mother and son, and offered to them a safe dwelling in his territories.
=== § 314, p. 124 ===
Scipio and Hannibal were famous generals. The former was a Roman, who won great victories; the latter was a Carthaginian, who conquered the Romans in many battles. Hannibal, when a boy, was brought to the altar by his father. There he swore hatred against the Romans. The young man captured many towns in Spain, then he passed over the Alp mountains and often defeated the Romans in Italy. Scipio, near the Ticinus River, courageously saved the life of his father, and afterwards, near Cannae, showed himself brave against Hannibal. War was carried across into Africa, and there Scipio defeated Hannibal near Zama. He is called by the Romans, 'Africanus.'
=== § 316, p. 125 ===
Perseus, as a young man, withdrew from the island Seriphus, and, after he came to the mainland, sought Medusa. For a long time, in vain, he was seeking her for he was ignorant of the nature of the location. After a while, Mercury and Minerva showed to him the road. First unto the Graeae, the sisters of Medusa, he came. With their help he received winged shoes and a magic helmet. Mercury and Minerva gave to him a sword and mirror. Then, after he put on his feet the winged shoes, he ascended into the air. For a long time he flew through the air; finally, however, to that place where Medusa was living with the other Gorgons he came. The Gorgons were monsters whose heads were wholly covered with snakes. But their hands were made from bronze.
=== § 337, p. 132 ===
If you are doing well, it is good; I am also doing well. This letter I am gladly writing to you. By the advice of my doctor I am wintering in Italy with my parents. With you snow covers everything, but with us here we rarely see snow. The air is mild; the heavens smile. Sometimes I walk on the shore or I wander in the spacious gardens, for the grass and trees are green there. From here I see Mt. Vesuvius, from here nearly the entire city, from here the beautiful islands situated in the sea. Daily, I give much of ''my'' work in the Latin language. I learn this language much easier than Greek. But now I form the end of the letter; soon I will tell to you everything in person. Farewell, my friend.
=== § 339, p. 133 ===
The most difficult thing was the cutting off the head of the Gorgon. for by the sight of it men would be turned into stone. Because of this reason, Minerva had given to Perseus the mirror. . . . . . . .
=== § 368, p. 142 ===
=== § 370, p. 143 ===
=== § 391, p. 149 ===
=== § 406, p. 156* ===
After this battle, Caesar spoke to his soldiers in a meeting thus: they had fought bravely; and so the enemy has been defeated everywhere and has fled to the mountains and the marshes; he [Caesar] would give the booty to them; he [Caesar] knew that they were tired on account of the long war and that he would send them to Italy at once; he [Caesar] wanted to remain in Gaul through the winter, but the following summer he [Caesar] would lead his own (men) to the Germans; many captives had been sent to Rome, and the Roman people were delighted by their victory.
=== § 408, p. 156-7* ===
When Perseus saw this, he took out his sword, and, after donning his magic boots, flew through the air. Then he suddenly attacked the monster from above, and gravely wounded its neck with his sword. When the monster felt the wound, it let out a horrible noise and without delay submerged its entire body in the water. As Perseus flew around the shore, he awaited its return. But meanwhile, the sea was being tainted everywhere with blood. After a short time the beast exposed its head again; nevertheless it was soon wounded by Perseus with a more severe strike. Then it again submerged itself in the waves, and thereafter was never seen again.
After Perseus descended to the shore, he first removed his magic boots; then came to the cliff where Andromeda was bound. But she had put away all hope of salvation, and when Perseus arrived, she had nearly died of fear. The former loosened her bonds at once and returned the girl to her father. Cepheus was affected with great joy on account of this action. And so he gave Andromeda to Perseus in matrimony. Perseus lived with his wife in this region for a few years, and existed in great honor among all Ethiopians.
=== § 423, p. 163* ===
[From Caesar's ''Commentāriī De Bellō Gallicō'' Book I.I]
All of Gaul is divided in three parts, one of which the Belgae inhabit, the Aquitani another, and the third those who are called Gauls. Of all of these the bravest are the Belgae because they are neither near the Roman provinces nor do traders come to them often; and they are the nearest to the Germans, who live across the Rhine, and with whom they wage war. For this reason the Helvetians are also braver than the rest of Gaul. They struggle on account of nearly daily battles with the Germans, when they restrain them from their own territories or they themselves wage war in the Germans' territories. This part that the Gauls occupy begins at the river Rhone; and is stopped at the river Garonne, the ocean, and the Belgian territories.
=== § 438, p. 168* ===
Certain mice had a meeting once, for they greatly feared a cat. Plans that were put forward was not pleasing to all. Finally one mouse spoke thus: "We ought to tie a tinnabulum to the cat's tail. Thus truly on account of his sound we shall be warned and shall be able to flee. Who of us wishes to do this?" But none of the companions was persuaded to tie the tintinnabulum to the cat, and he himself was unwilling. This story teaches that very many are bold in offering advice but are afraid of the very risk [of doing so].
=== § 439, p. 168* ===
One time, Nasica came to the house of the poet Ennis and asked about him. The slave-girl responded that Ennius was not at home. But Nasica felt that that girl said this on account of the master's command and that Ennius was home. A few days later Ennius came to Nasica's house. She exclaims to him that Nasica is not at home. Then Ennius said, "What? Do I not know your voice?" Hereupon Nasica replied, "You are a shameless man. I believed your slave-girl; you do not believe me myself?"
=== § 440, p. 168-9* ===
[From Caesar's ''Commentāriī De Bellō Gallicō'' Book I.II]
Oregetorix was the most famous of the Helvetians for a long time. He was led by desire for the kingship and created a conspiracy of the nobility. Then he persuaded the state to hasten from their own land with all of their troops. It was easy to persuade them because the Helvetians are enclosed on all sides by the nature of the place: on one side the river Rhine, the broadest and deepest, which divided the land of the Helvetians from the Germans; on the other side by the very high Jura mountain, which is between the Sequani and the Helvetians; on the third side by lake Lemannus [Geneva] and the river Rhine, which divides our province from the Helvetians. On account of the multitude of men and the glory of war they reckoned themselves to have a small territory, which extended 240 miles in length and 180 miles in breadth.
=== § 449, p. 173* ===
# Lacaenus said to his son while hastening to battle, "either on a shield or with a shield." (A Greek saying based on the fact that slain warriors would be carried home upon their shields.)
# Leonidas said to the soldiers, "The enemies are near us," to which he responded, "Now we are near the enemy."
# Thales, having been asked, "What is common to men?" responded, "Hope; for truly now they have this who have nothing at all."
# A Corinthian spectator asked, "You make strong and high walls. Which women inhabit this city?"
# A certain man asked Aristotle, "What is friendship?" Aristotle replied, "One soul in two bodies."
# Cicero said, "The one that cannot tame an army is the general who cannot tame himself."
=== § 451, p. 173-4* ===
The Helvetians, influenced by these things and having been agitated by the authority of Orgetorix, determined to buy the maximum number of carts, prepare a supply of grain, and strengthen peace and friendship with neighboring nations.
Meanwhile Orgetorix assumed the position of ambassador towards the nations.
During this quest he persuaded Casticus, a Sequani, whose father had possessed the Sequani kingdom for many years and had been named friend of the Roman people by the Senate, to seize the kingdom in his own nation.
He persuaded this man to do the same for the other chiefs.
Influenced by Orgetorix's speech, these chiefs offered hostages amongst themselves, and they hoped to be able to occupy the entirety of Gaul by themselves.
The Helvetians however did not approve of this meeting.
Therefore they gathered together a multitude of men from the fields to avert Orgetorix's plans.
But at this time Orgetorix suddenly died.
=== § 479, p. 184-5 ===
=== § 494, p. 190-1 ===
== Reviews ==
=== § 68, p. 38 ===
=== § 69, p. 38 ===
=== § 70, p. 39 ===
=== § 71, p. 39 ===
=== § 72, p. 39 ===
# Rule: The subject of a sentence is in the nominative case.<br>''Equus natat.''
# Rule: A verb agrees with its subject in number and person.<br>''Equī natant.''
# Rule: The object of a verb is in the accusative case.<br>''Puella equum exspectat.''
# Rule: The word enoting the owner or possessor is in the genitive case.<br>''Equus puellae natat.''
# Rule: The cause of and action may be expressed by a dependent clause introduced by ''quod''.<br>''Equus natat quod puella equum exspectat.''
# Rule: The indirect object of a verb is in the dative case.<br>''Rēgīna puellae equum dat.''
# Rule: Plase where is commonly expressed by a phrase consisting of a preposition, usually ''in'', with the ablative case.<br>''Puella in agrō equum spectat.''
# Rule: -.<br>''Quis puellae equum dat?''<br>''Rēgīnane puellae equum dat?''<br>''Cuius equum rēgīna puellae dat?''
=== § 115, p. 54 ===
=== § 116, p. 54 ===
=== § 117, p. 55 ===
=== § 118, p. 55 ===
=== § 119, p. 55 ===
# Rule: Adjectives agree with their nouns in case, gender, and number. <br>''Ea puella equum bonum et parvam habet.''
# Rule: A predicate noun agrees in case with the subject of the verb. <br>''Cornēlia est puella.''
# Rule: A predicate adjective agrees in case, gender, and number with the subject of the verb. <br>''Iūlia et Cornēlia sunt amīcae.''
# Rule: An appositive agrees in case with the noun it explains. <br>''Cornēlia puella equum probat.''
# Rule: Certain adjectives meaning near, fit, friendly, pleasing, like, and their opposites may be accompanied by a dative to show the person or the thin toward which the quality of the adjective is directed. <br>''Equus Cornēliae grātus est.''
=== § 163, p. 70 ===
=== § 164, p. 70 ===
=== § 165, p. 70 ===
=== § 166, p. 71 ===
=== § 167, p. 71 ===
# Rule: The means by which an action is accomplished is expressed by the ablative without a preposition.<br>''Sociōs vulnerōs scutīs portāvērunt.''
# Rule: The ablative with cum is used with abstract nouns to denote the manner of an action; but cum may be omitted if an adjective modifies the noun of the phrase.<br>''In eō locō cum studīo pugnāvērunt; sed prō eō vīcō magnā cūrā pugnāvērunt.''
# Rule: The ablative with cum is used to show accompaniment.<br>''Is lēgātus in Italiam cum sociīs properāvit.''
=== § 203, p. 86 ===
=== § 204, p. 86 ===
=== § 205, p. 87 ===
=== § 206, p. 87 ===
=== § 207, p. 87 ===
# Rule: Place from which is expressed by the ablative with ''ā'' (''ab''), ''dē'' or ''ē'' (''ex'').<br>''Ab urbē Horātius properat.''<br>''Dē pontē Horātius desiluit.''<br>''Ē portā Horātius properāvit.''
# Rule: The place to which is expressed by the accusative with ''ad'' or ''in''.<br>''Ad pontem Horātius cucurrit.''<br>''In flūmen Horātius desilit.''
# Rule: The ablative without a preposition is used to express cause.<br>''Multīs vulneribus mīlitēs dēfessī sunt.''
# Rule: Cause may also be expressed by a prepositional phrase consisting of ''ob'' or ''propter'' with the accusative, or of ''dē'' or ''ex'' with the ablative.<br>''Ob virtūtem Horātiī eum laudāmus.''<br>''Rōmānī multīs dē iniūrīs cum Helvetiīs pugnāverunt.''
# Rule: -<br>''Ad pontem contrā hostīs Horātius properat.''<br>''Ante pontem inter sociōs Horātius apud hostīs pugnāvit.''<br>''Ob iniūriās per urbem et trāns pontem Horātius, et post Horātium cīvēs, properāvērunt.''
# Rule: -<br>''Ab urbe et ē portās cum sociīs prō Rōmā Horātius, sine terrōre, properat.''
# Rule: -<br>''Nostrī dēfessī sunt.''<br>''Dux dēfessōs ā proeliō dīmīsit.''
=== § 252, p. 104 ===
=== § 253, p. 104 ===
=== § 254, p. 104 ===
=== § 255, p. 105 ===
=== § 256, p. 105 ===
=== § 301, p. 120 ===
=== § 302, p. 120 ===
=== § 303, p. 121 ===
=== § 304, p. 121 ===
=== § 305, p. 121 ===
=== § 362, p. 140 ===
=== § 363, p. 140 ===
=== § 364, p. 141 ===
=== § 365, p. 141 ===
=== § 366, p. 141 ===
=== § 415, p. 160 ===
=== § 416, p. 160 ===
=== § 417, p. 161 ===
=== § 418, p. 161 ===
=== § 419, p. 161 ===
=== § 466, p. 180 ===
=== § 467, p. 180 ===
=== § 468, p. 181 ===
=== § 469, p. 181 ===
=== § 470, p. 181 ===
=== § 506, p. 196 ===
=== § 507, p. 196 ===
=== § 508, p. 197 ===
=== § 509, p. 197 ===
=== § 510, p. 197 ===
=== § 511, p. 197 ===
5ak0zs24evi6zyllzs2rsexrumjj72z
Micronations/List of already existing micronations/Aerican Empire
0
411586
4640502
3602088
2026-06-17T08:58:24Z
~2026-35400-02
3607505
/* cool */
4640502
wikitext
text/x-wiki
[[File:Flag of Aerica.svg|thumb|The flag of the Aerican Empire, very silly.]]
The '''Aerican Empire''' (conventionally referred to in short form as '''Aerica''') is a micronation founded in May 1987,<ref name="ReferenceA">Ryan, J: ''Micronations: The Lonely Planet Guide to Self-Proclaimed Nations'', {{ISBN|1-74104-730-7}}</ref> which has no sovereign territory of its own and has never been recognized by any other sovereign state as existing. The name is cultured from the term "American Empire".<ref>[http://www.aericanempire.com/faq.html#11 Aerican Empire: FAQ] at the group's website, section "What kind of name is Aerica?". Retrieved July 2009.</ref> In 2000 ''The New York Times'' described its website as "one of the more imaginative" micronation sites.<ref name="NYTimes">''The New York Times'': [https://www.nytimes.com/2000/05/25/technology/utopian-rulers-and-spoofs-stake-out-territory-online.html "Utopian Rulers, and Spoofs, Stake Out Territory Online"], 25 May 2000.</ref>
Its members claim sovereignty over a vast disconnected territory, including a square kilometer of land in Australia, a house-sized area in Montreal, Quebec, Canada (containing the "Embassy to Everything Else"), several other areas of the Earth, a colony on Mars, the northern hemisphere of Pluto, and an imaginary planet.<ref>''The Wanderer'': [https://members.cmca.net.au/content/public_login.aspx ''The Wanderer''], November 2012, "Micro-nations of our Nation". Archived at [http://www.mediafire.com/view/?w64r0ldqww53duq]{{Dead link|date=September 2019|bot=InternetArchiveBot|fix-attempted=yes}} and [http://www.mediafire.com/view/?ixngsz2c4ulkp5t]{{Dead link|date=September 2019|bot=InternetArchiveBot|fix-attempted=yes}}</ref>
Their flag is similar to the flag of Canada, with a large yellow smiley face instead of the red maple leaf in the white square (although the red rectangles on the sides have different side length ratios).
Me after I kindly say on the phone, “yea I just owned a colony on mars and the northern hemisphere of Pluto” on the telephone
[[File:Telephone modele U43-MGR Lyon-IMG 9923.jpg|thumb|250x250px]]
== History ==
The Aerican Empire was founded on May 8, 1987 by Canadian Eric Lis and a group of friends. For the first ten years the Empire was almost wholly fictional, claiming sovereignty over a vast galaxy of planets and engaging in wars against other micronations.<ref name="Mirror">''The Montreal Mirror'': [http://www.montrealmirror.com/2006/081706/news3.html ''The Montreal Mirror''] , 17 August 2006, "The little empire that could"</ref> After the advent of the Internet, through which the founders discovered other micronations similar to their own, the Empire slowly abandoned most fictional elements and worked towards becoming a political entity rather than a hobby. In 1997, the Empire created a [http://www.aericanempire.com/ website].<ref>O'Driscoll, F: ''Ils ne siègent pas à l'ONU'', {{ISBN|2-87867-251-8}}</ref>
In 2007, Aerica first issued "novelty passports." The first issued passport was exhibited in the Palais de Tokyo 2007 Micronational art exhibition.<ref>''Aerican Mailing List Archive'', [https://groups.yahoo.com/group/aerican/message/10814], December 2, 2006</ref>
The Aerican Empire first issued coinage in November 2009, and a second coin was minted to celebrate Aerica's 25th anniversary in 2012.<ref name="Aerican Empire: Economics">[http://www.aericanempire.com/money.html Aerican Empire: Economics]</ref> Banknotes were issued for the first time in 2017.<ref name="Aerican Empire: Economics" />
Aerica issued stamps for the first time in 2015.<ref>''Aerican Empire Post'', [http://www.aericanempire.com/post.html], May 8, 2015</ref>
== Status ==
[[File:Aericamap.jpg|thumb|Map of the territory of the Aerican Empire micronation]]
The Empire's mission statement is: "The Empire exists to facilitate the evolution of a society wherein the Empire itself is no longer necessary."<ref name="Mirror" /><ref>''The Boston Phoenix'': [http://www.bostonphoenix.com/archive/features/00/10/12/MICRONATIONS2.html ''The Boston Phoenix''] , October 2000, "States of Mind".</ref><ref>''CBC Daybreak'': [http://www.cbc.ca/daybreakmontreal/ ''Daybreak''], 13 July 2006, "The Aerican Empire: Interview With Eric Lis". Montreal: CBC Radio</ref> It claims to be organized as a parliamentary democracy, with various elected bodies and offices, under the oversight of an Emperor (currently the founder, Eric Lis).<ref>''Le Soleil'', Quebec City: Le Soleil, 18 January 2001, "Vive Eric 1er, empereur virtuel!"</ref> Lis, who founded the Aerican Empire as a child, obtained his M.D., C.M. from McGill University and has been published in the Journal of Psychiatry and Neuroscience<ref>''Journal of Psychiatry and Neuroscience'': [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1863557/], 2007, "Neuroimaging and genetics of borderline personality disorder: a review".</ref> and ''Weird Tales'' magazine.<ref>''Weird Tales Magazine'': Weird Tales, 2008, "My True Lovecraft Gave To Me".</ref><ref>''Weird Tales Magazine'': Weird Tales, 2011, "A Contract Without Loopholes".</ref>
The group's activities are permeated by a great deal of humour and a love of science fiction and fantasy, with recurrent references to Star Wars, ''The Hitchhiker's Guide to the Galaxy'', and similar works. Annually, the Empire holds story-writing contests, role-playing and wargaming days, and such events as the Dog-Biscuit Appreciation Day Scavenger Hunt.<ref name="Mirror" /> It also developed a "religion" called Silinism, the worship of the Great Penguin; originally intended as a joke, but which the group claims to have thirty practitioners worldwide.<ref name="NYTimes" /> It has holidays and "niftydays" (such as 2 January Procrastinator's Day, 27 February *Oops* Day, 19 March What the Heck is That Day, and 26 October Topin Wagglegammon, The Niftiest Day of the Year).<ref>''Context Magazine'': [http://www.contextmag.com/setFrameRedirect.asp?src=/archives/200104/ManAndMachine.asp ''Context Magazine''], April–May 2001, "Altered States".</ref>
== Offline activities ==
While Internet-based activities in the Empire are more well-documented and facilitate interaction between members in different countries, a major focus has always been local physical events. Members gather for weekly meetings in Montreal, Springvale, New York and other centers, and a twentieth anniversary convention was held in July 2007.<ref>[http://www.aericanempire.com/2007convention.html Aerican Empire: 20th Anniversary Convention]</ref>
Delegations from the Aerican Empire were in attendance at the Polinations academic conference in London in 2012 <ref>Delafontaine, L., ''Les Micronations, Montreuil-sur-Brêche, Diaphane, 14 September 2013, pages 160, {{ISBN|978-2-919077-19-9}}''</ref><ref>[https://www.youtube.com/watch?v=UsFXU6mCOIk ''Radio France'': 15 July 2012, archived at]</ref> and the MicroCon micronations convention in Atlanta in 2017.<ref name="Atlanta Magazine">''Atlanta Magazine'': [http://www.atlantamagazine.com/news-culture-articles/probably-didnt-know-leaders-26-micronations-just-gathered-atlanta/ ''Atlanta Magazine''], 30 June 2017, "You probably didn't know, but leaders from 26 micronations just gathered in Atlanta".</ref>
== References ==
{{reflist|30em}}
{{BookCat}}
dkgzto3py93csmxi7r206ehw22n8o1y
World Stamp Catalogue/Switzerland
0
418707
4640437
4619432
2026-06-16T12:12:03Z
~2026-35094-31
3607169
/* Courrendlin (JU) */
4640437
wikitext
text/x-wiki
[[File:Map of the Swiss Cantons in 1996.png|right|thumb|650px|Map showing the cantons of Switzerland (1994)]]
{{en|Revenue stamps of Switzerland, issued by federal, cantonal and municipal authorities.}}
=The Swiss tax system=
[[w:Taxation in Switzerland|Taxation in Switzerland]] has different levels. Taxes are levied by the Swiss confederation, the 26 cantons and the municipalities. The federal and cantonal constitutions govern the delimitation of Swiss taxation powers. However, the cantons exercise all the rights of a sovereign state. They can levy any type of tax as long as the Federal Constitution does not reserve a right for the national government to do so.
There are only a few types of Swiss taxes for which the confederation claims exclusive taxation authority. These include: Swiss VAT, stamp duties, withholding tax, custom duties and special consumption taxes. Consequently, the cantons have wide latitude in the creation of their own tax legislation. Municipalities may only levy taxes with authorization by the constitution of their respective canton.
In addition, the parishes of the three national churches (Christian Catholic, Protestant, and Roman Catholic) levy a church tax on their members in almost all cantons. This also applies to the legal entities liable for tax in the canton.
The levels of Swiss tax authorities are:
*Federal level: governed by the Federal Constitution
*Cantonal level: governed by the canton
*Municipal level: governed by the commune.
*Church: members of the three national churches are taxed in almost all cantons.
=Federal revenue stamps of Switzerland=
[[w:Switzerland|Switzerland]], officially the Swiss Confederation, is a [[w:federal republic|federal republic]] in [[w:Europe|Europe]]. It consists of [[w:cantons of Switzerland|cantons]], and the city of [[w:Bern|Bern]] is the seat of the federal authorities. Federal revenue stamps were issued for 14 different taxes between 1915 and 1980.
[[File:Coat of arms of Switzerland.svg|thumb|right|100px]]
==Bonds and notes==
===1915===
[[File:Switzerland federal consular revenue 1915 detail.jpg|thumb|right|125px|[[w:Hans Frei (sculptor)|Hans Frei]] signature on lower corner right.]]
Design by [[w:Hans Frei (sculptor)|Hans Frei]] (1868 - 1947), Swiss medallist, goldsmith and sculptor.
<gallery>
Switzerland federal bonds revenue 1915 3Fr - 8.jpg|3Fr
Switzerland federal bonds revenue 1915 10Fr - 11.jpg|10Fr
</gallery>
==Consular service==
===1915===
1915 federal bonds and notes stamps overprinted in black 'Service Consulaire Taxes'.
<gallery>
Switzerland federal consular revenue 1915 50c - 1.jpg|50c
Switzerland federal consular revenue 1915 1Fr - 2.jpg|1Fr
Switzerland federal consular revenue 1915 2Fr - 3.jpg|2Fr
Switzerland federal consular revenue 1915 3Fr - 4.jpg|3Fr
Switzerland federal consular revenue 1915 5Fr - 5.jpg|5Fr
Switzerland federal consular revenue 1915 10Fr - 6.jpg|10Fr
Switzerland federal consular revenue 1915 15Fr - 7.jpg|15Fr
Switzerland federal consular revenue 1915 20Fr - 8.jpg|20Fr
</gallery>
===1920-1963===
<gallery>
Switzerland federal consular revenue 1918 5Fr-16.jpg|1918, 5Fr
Switzerland 1920 consular revenue 1Fr - 20.jpg|1920, 1Fr
Switzerland 1920 consular revenue 3Fr - 22.jpg|1920, 3Fr
Switzerland 1924 consular service document Porto.jpg|5Fr, used 1924 in Porto consulate
CH1931visa.jpg|5Fr, used 1931 on passport in Warsaw consulate
</gallery>
==Bill of exchange==
===1918===
Arms of Switzerland. 5c-50c grey-brown, 1fr-100fr lilac on yellow. Red value inscription. perforated 11.75, unwatermarked. Granite paper with red colored silk fibers (A). Different types can be distinguished for 1fr, 2fr and 5fr.
*A: Granite paper with red colored silk fibers. Unwatermarked. 1fr, 2fr and 5 fr. (1918)
*B: Granite paper with red and blue colored silk fibers. Unwatermarked. 1fr, 2fr and 5 fr. (1918)
*C: Ribbed granite paper with red and blue colored silk fibers. Watermarked large cross. 1fr and 2fr. (1933)
<gallery>
Switzerland federal bill of exchange revenue 1918 5c-1A.jpg|5c
Switzerland federal bill of exchange revenue 1918 10c-2A.jpg|10c
Switzerland federal bill of exchange revenue 1918 10c-2A 2.jpg|10c
Switzerland federal bill of exchange revenue 1918 20c-4A.jpg|20c
Switzerland federal bill of exchange revenue 1918 25c-5A.jpg|25c
Switzerland federal bill of exchange revenue 1918 30c-6A.jpg|30c
Switzerland federal bill of exchange revenue 1918 35c-7A.jpg|35c
Switzerland federal bill of exchange revenue 1918 40c-8A.jpg|40c
Switzerland federal bill of exchange revenue 1918 45c-9A.jpg|45c
Switzerland federal bill of exchange revenue 1918 50c-10A.jpg|50c
Switzerland federal bill of exchange revenue 1918 1Fr-11A.jpg|1fr (A)
Switzerland federal bill of exchange revenue 1918 2Fr-12A.jpg|2fr (A)
Switzerland federal bill of exchange revenue 1918 3Fr-13A.jpg|3fr
Switzerland federal bill of exchange revenue 1918 4Fr-14A.jpg|4fr
Switzerland federal bill of exchange revenue 1918 5Fr-15A.jpg|5fr (A)
Switzerland federal bill of exchange revenue 1918 10Fr-16A.jpg|10fr
Switzerland federal bill of exchange revenue 1918 20Fr-18A.jpg|20fr
Switzerland federal bill of exchange revenue 1918 30Fr-20A.jpg|30fr
</gallery>
===1920-1933===
Arms of Switzerland, 5c-50c. Orange-brown, perforated 11.75. Three types can be distinguished.
*A: Granite paper with red colored silk fibers. Unwatermarked. (1920)
*B: Granite paper with red and blue colored silk fibers. Unwatermarked. (1920)
*C: Ribbed granite paper with red and blue colored silk fibers. Watermarked large cross. (1933)
'''1920'''
<gallery>
Switzerland federal revenue 1920 5c-24A.jpg|5c
Switzerland federal revenue 1920 5c-24A fragment.jpg|5c used on fragment
Switzerland federal revenue 1920 10c-25A fragment.jpg|10c used on fragment
Switzerland federal revenue 1920 15c-26A.jpg|15c
Switzerland federal revenue 1920 10c and 15c - 25A and 26A fragment.jpg|10c, 15c used on fragment
Switzerland federal revenue 1920 20c-27A.jpg|20c
Switzerland federal revenue 1920 25c-28A.jpg|25c
Switzerland federal revenue 1920 30c-29A.jpg|30c
Switzerland federal bill of exchange revenue 1920 30c-29A.jpg|30c
Switzerland federal revenue 1920 35c - 30A.jpg|35c
Switzerland federal revenue 1920 40c-31A.jpg|40c
Switzerland federal revenue 1920 45c-32A.jpg|45c
Switzerland federal bill of exchange revenue 1920 50c-33A.jpg|50c
Switzerland federal revenue 1920 50c and 5c - 33A and 24A fragment.jpg|50c, 5c used on fragment
Switzerland 1933-02-15 bill of exchange Chessex Cie.jpg|1933 bill of exchange with 15c
Switzerland 1936-03-31 bill of exchange Anthime Mouley.jpg|1936 bill of exchange with 20c
</gallery>
'''1933'''
<gallery>
Switzerland federal bill of exchange revenue watermarked ribbed paper 1933 C reverse.jpg|watermarked ribbed paper type C
Switzerland federal bill of exchange revenue 1933 5c-24C.jpg|5c
</gallery>
==Imprinted revenues==
===Confederation===
Relief imprint. Design by Hans Frei (1868 - 1947), Swiss medallist, goldsmith and sculptor. 5 different fees were applied for different purposes. Little is known about this group except some different dates per tax. [[w:Bond (finance)|Bonds]] were taxed 3% (№ 5).
<gallery>
Switzerland confederation imprinted revenue 17.VI.1920 - 5.jpg|Imprinted revenue 17.VI.1920
Switzerland transportation bond with confederational imprinted revenue 17.VI.1920 - 5.jpg|Bond certificate with imprinted revenue 17.VI.1920
</gallery>
=Cantonal revenue stamps=
[[w:cantons of Switzerland|The 26 cantons of Switzerland]] are the [[w:Federated state|member states]] of the [[w:Swiss Confederation|Swiss Confederation]].
==Aargau==
[[w:Aargau|Aargau]] is one of the 26 cantons of [[w:Switzerland|Switzerland]]. 48 different revenue stamps were issued from 1886 to 1936. 50 different special issues are known, all imperforate.
[[File:CHE Aargau COA.svg|thumb|right|100px]]
===General revenue===
====1886====
Coat of arms of Aarau. Three types can be distinguished:
* A: Imperforate
* B: Perforated 11.5, light colors
* C: Perforated 11.5, dark colors
<gallery>
Switzerland Aargau 1886 revenue 10c - 1.jpg|10c used (B)
Switzerland Aargau 1886 revenue 10c - 1C.jpg|10c used (C)
Switzerland Aargau 1886 revenue 20c - 2.jpg|20c used (B)
Switzerland Aargau 1886 revenue 20c - 2C.jpg|20c used (C)
Switzerland Aargau 1886 revenue 40c - 3.jpg|40c used (B)
Switzerland Aargau 1886 revenue 1Fr - 4B.jpg|1Fr used (C)
Switzerland Aargau 1886 revenue 1Fr - 4.jpg|1Fr used (C)
Switzerland Aargau 1886 revenue 2Fs - 5.jpg|2Fr used 'Fs.' (C)
Switzerland Aargau 1886 revenue 2Fr - 5.jpg|2Fr used 'Fr.' (B)
Switzerland Aargau 1886 revenue 5Fr - 6.jpg|5Fr used (B)
</gallery>
====1908====
<gallery>
Switzerland Aargau 1908 revenue 10c - 8A.jpg|10c used
Switzerland Aargau 1908 revenue 10c - 8C.jpg|10c used
Switzerland Aargau 1908 revenue 20c - 9C.jpg|20c used
Switzerland Aargau 1908 revenue 40c - 10C.jpg|40c used
</gallery>
===Fixed fees===
====1913====
<gallery>
Switzerland Aargau 1913 Revenue 20c - 10B.jpg|20c used
Switzerland Aargau 1913 Revenue 50c - 12B.jpg|50c used
Switzerland Aargau 1913 Revenue 2Fr - 14A.jpg|2Fr used
Switzerland Aargau 1913 Revenue 2Fr - 14B.jpg|2Fr used
Switzerland Aargau 1913 Revenue 3Fr - 15B.jpg|3Fr used
Switzerland Aargau 1913 Revenue 5Fr - 16B.jpg|5Fr used
</gallery>
====1936====
<gallery>
Switzerland Aargau 1936 Revenue 1Fr - 21.jpg|1Fr used
Switzerland Aargau 1936 Revenue 5Fr - 25.jpg|5Fr used
Switzerland Aargau 1936 Revenue 10Fr - 26.jpg|10Fr used
Switzerland Aargau 1936 Revenue 15Fr - 2.jpg|15Fr used
</gallery>
===Poster tax===
1916. 5 different values with perforations 10 (A), 10.75-11 (B), 11-11.25 (C) or 11.5 (D).
<gallery>
Switzerland Aargau Reklamenstempel 20c - 1A.jpg|20c used (A)
Switzerland Aargau Reklamenstempel 1Fr - 2Ax.jpg|1Fr used, small 'F' (A)
Switzerland Aargau Reklamenstempel 1Fr - 2B.jpg|1Fr used, small 'F' (B)
Switzerland Aargau Reklamenstempel 4Fr - 3A.jpg|4Fr used (A)
Switzerland Aargau Reklamenstempel 10Fr - 4A.jpg|10Fr used (A)
Switzerland Aargau Reklamenstempel 10Fr - 4A (2).jpg|10Fr used (A)
Switzerland Aargau Reklamenstempel 20Fr - 5A.jpg|20Fr used (A)
</gallery>
===Markings===
Two different categories of revenue markings can be distinguished:
*Hand stamps (A),
*Relief (dry) marking (C), from ca. 1825.
<gallery>
Switzerland Aargau 1831 5 Rap. hand stamp 01.jpg|1831, 5rp hand stamp
Switzerland Aargau 1825 revenue relief imprint C1.jpg|1825, Relief (dry) marking (C), no value in cartouche
Switzerland Aargau 1831 document with 5 Rap. hand stamp and relief imprint.jpg|1831 document with 5 Rap. hand stamp and relief imprint
Switzerland Aargau 1839 document with 5 Rap. hand stamp and relief imprint.jpg|1839 document with 5 Rap. hand stamp and relief imprint
</gallery>
==Basel==
See separate book: [[World Stamp Catalogue/Basel (Switzerland)|Basel]]
==Bern==
See separate book: [[World Stamp Catalogue/Bern (Switzerland)|Bern]]
==Fribourg==
See separate book: [[World Stamp Catalogue/Fribourg (Switzerland)|Fribourg]]
==Geneva==
See separate book: [[World Stamp Catalogue/Geneva (Switzerland)|Geneva]]
==Grisons==
[[w:Grisons|Grisons]] or ''Graubünden'', is the largest and easternmost [[w:Cantons of Switzerland|canton]] of [[W:Switzerland|Switzerland]]. 15 different revenue stamps were issued from 1930 to 1947 and for tourism 39 from 1936 to 1957.
[[File:CHE Graubünden COA.svg|thumb|right|100px]]
===General revenue, 1943===
Perforated 11 (A) or 11.5 (B)
<gallery>
Switzerland Grisons federal 1943 revenue gratis - 1A.jpg|Gratis used (A)
Switzerland Grisons federal 1943 revenue 50c - 2B.jpg|50c used (B)
Switzerland Grisons federal 1943 revenue 1Fr - 3B.jpg|1Fr used (B)
Switzerland Grisons federal 1943 revenue 2Fr - 4A.jpg|2Fr used (A)
Switzerland Grisons federal 1943 revenue 5Fr - 6A.jpg|5Fr used (A)
Switzerland Grisons federal 1943 revenue 7Fr - 7A.jpg|7Fr used (A)
</gallery>
===Tourism===
The tourism tax stamps of Switzerland deal with the stamps related to the short-term, visitor-accommodation tourism taxes (taxe de séjour).<ref>{{cite book |first=Clayton |last=Wallace |year=2016 |title=Tourism Tax Stamps of Switzerland |edition=2nd |publisher=Alamo, USA}}</ref> The tourism tax is a public contribution that the guest of a resort or region must pay to help finance the expenses for improving the conditions of their stay.<ref>{{cite book|first=Pierre-Olivier |last=Zing |year=1971 |title=La taxe de sejour et la taxe de tourisme |publisher=Lausanne University}}</ref> 4 different sets were issued by the canton of Grisons between 1936 and 1957.
====1936-1938====
[[File:Switzerland Grisons 1936-1938 tourism revenue 5c - 1xB detail.jpg|thumb|right|125px|Type 1]]
Arms of Grisons. Two perforations: 11 (A) or 11.5 (B).
* One line surrounds shield
* Oval whorls
* Upper right field of shield is correct
* Condensed numeral field
* Lower right whorl has no dot in the oval.
The 5c exists in three types: wide (x), 7 narrow 5 (y), cutoff 5 (z).
<gallery>
Switzerland Grisons 1936-1938 tourism revenue 5c - 1xB.jpg|5c - (xB)
Switzerland Grisons 1936-1938 tourism revenue 10c - 2A.jpg|10c - (A)
Switzerland Grisons 1936-1938 tourism revenue 10c - 2B.jpg|10c - (B)
Switzerland Grisons 1936-1938 tourism revenue 50c - 6A.jpg|50c - (A)
Switzerland Grisons 1936-1938 tourism revenue 70c - 7A.jpg|70c - (A)
Switzerland Grisons 1936-1938 tourism revenue 70c - 7B.jpg|70c - (B)
</gallery>
====1944====
[[File:Switzerland Grisons 1944 tourism revenue 5c - 9 detail.jpg|thumb|right|125px|Type 2]]
Arms of Grisons. Perforated 11.5.
* Two lines surround shield
* Round whorls
* Shading in shield is incorrect
* Condensed numeral field
* Lower right whorl has a dot in the oval.
<gallery>
Switzerland Grisons 1944 tourism revenue 5c - 9.jpg|5c
Switzerland Grisons 1944 tourism revenue 10c - 10.jpg|10c
Switzerland Grisons 1944 tourism revenue 35c - 13.jpg|35c
Switzerland Grisons 1944 tourism revenue 50c - 14.jpg|50c
Switzerland Grisons 1944 tourism revenue 70c - 15.jpg|70c
Switzerland Grisons 1944 tourism revenue 5Fr - 18 block of ten.jpg|5Fr block of ten
</gallery>
====1944- ====
[[File:Switzerland Grisons 1944- tourism revenue 60c - 22C detail.jpg|thumb|right|125px|Type 3]]
Arms of Grisons. Perforated 10.75 thick paper (A), 10.75 thin paper (B) or 11.5 (C)
* Two lines surround shield
* Round whorls
* Upper right field of shield corrected
* Spread numeral field
* Lower left whorl resembles snake head.
<gallery>
Switzerland Grisons 1944- tourism revenue 20c - 20A.jpg|20c - (A)
Switzerland Grisons 1944- tourism revenue 20c - 20B.jpg|20c - (B)
Switzerland Grisons 1944- tourism revenue 30c - 21B.jpg|30c - (B)
Switzerland Grisons 1944- tourism revenue 60c - 22C.jpg|60c - (C)
Switzerland Grisons 1944- tourism revenue 90c - 23C.jpg|90c - (C)
Switzerland Grisons 1944- tourism revenue 1Fr - 24aA.jpg|1Fr - (A)
Switzerland Grisons 1944- tourism revenue 2Fr - 25A.jpg|2Fr - (A)
Switzerland Grisons 1944 tourism revenue 5Fr - 27C.jpg|5Fr - (C)
</gallery>
==Lucerne==
See separate book:[[World Stamp Catalogue/Lucerne (Switzerland)|Lucerne]].
==Neuchâtel==
See separate book: [[World Stamp Catalogue/Neuchâtel (Switzerland)|Neuchâtel]]
==Uri==
[[w:Canton of Uri|Uri]] is one of the 26 [[w:cantons of Switzerland|cantons of Switzerland]] and a founding member of the [[w:Switzerland|Swiss Confederation]], located in [[w:Central Switzerland|Central Switzerland]]. 25 different revenue stamps were issued from 1895 to 1947. 2 special stamps were issued in 1894 and 2 in 1895.
[[File:Wappen Uri matt.svg|thumb|right|100px]]
===General revenue, 1895===
Perforated 12.75.
<gallery>
Switzerland Uri 1895 cantonal revenue 10rp - 1 detail.jpg|Rays that extend above frame lines
Switzerland Uri 1895 cantonal revenue 10rp - 1.jpg|10rp
Switzerland Uri 1895 cantonal revenue 10rp - 1 block of four.jpg|10rp block of four
Switzerland Uri 1895 cantonal revenue 20rp - 2.jpg|20rp
Switzerland Uri 1895 cantonal revenue 20rp - 2 block of four.jpg|20rp block of four
Switzerland Uri 1895 cantonal revenue 50rp - 3.jpg|50rp
</gallery>
==Zug==
The canton of [[w:Canton Zug|Zug, also Zoug]] is one of the 26 [[w:cantons of Switzerland|cantons of Switzerland]]. It is located in central Switzerland and its capital is [[w:Zug|Zug]]. Zug is one of the smallest of the Swiss cantons in terms of area and is subdivided into eleven municipalities. 7 different revenue stamps were issued from 1888 to 1943. 2 tourist tax stamps were issued in 1959 and 3 essays are known.
[[File:Wappen Zug matt.svg|thumb|right|100px]]
===General revenue, 1888-1909===
Arms of Zug. The first issue can be divided in 4 groups: Perforated 10.75 (A), 11.5 (B), 12.75 thick paper (C), 12.75 thin paper (D). Numerous shades.
<gallery>
Switzerland Canton Zug 1888 revenue10c - 1C.jpg|10c (C)
Switzerland Canton Zug 1888 revenue 15c - 2B.jpg|15c (B)
Switzerland Canton Zug 1888 revenue 30c - 3C.jpg|30c (C)
Switzerland Canton Zug 1888 revenue 60c - 4B.jpg|60c (B)
</gallery>
=Municipal revenue stamps=
The [[w:Municipalities of Switzerland|municipalities of Switzerland]] are the lowest level of [[w:administrative division|administrative division]] in Switzerland. Each municipality is part of one of the [[w:Cantons of Switzerland|Swiss cantons]], which form the [[w:Swiss Confederation|Swiss Confederation]]. In most cantons municipalities are also part of [[w:districts of Switzerland|districts]] or other sub-cantonal administrative divisions. There are 2,294 municipalities in 2017, and according Gainon<ref>{{cite book |first=Denis |last=Gainon |year=1995 |title=Catalogue de timbres administratifs publics de Suisse (fiscaux et analogues) confédération, cantons, communes |edition=5th |publisher=SGSSV / SSCEP, Zürich, Switzerland}}</ref> about 800 have issued revenue stamps.
==Aarau (AG)==
[[w:Aarau|Aarau]] is the capital of the canton of [[w:Aargau|Aargau]]. 28 different stamps were issued between 1906 and 1908. 9 special printings (S) exist.
[[File:CHE Aarau COA.svg|thumb|right|100px]]
===1906===
<gallery>
Switzerland Aarau 1906 revenue 5C - 1.jpg|5c used
Switzerland Aarau 1906 revenue 10C - 2.jpg|10c used
Switzerland Aarau 1906 revenue 70C - 5.jpg|70c used
Switzerland Aarau 1906 revenue 2Fr - 8.jpg|2fr used
</gallery>
===1908===
<gallery>
Switzerland Aarau 1908 revenue 10C - 13.jpg|10c used
Switzerland Aarau 1908 revenue 30C - 15c.jpg|30c used (C)
Switzerland Aarau 1908 revenue 80C - 18c.jpg|80c used (C)
Switzerland Aarau 1908 revenue 1Fr - 19c.jpg|1fr used (C)
Switzerland Aarau 1908 revenue 1.50Fr - 22c.jpg|1.50fr used (C)
</gallery>
==Aarberg (BE)==
[[w:Aarberg|Aarberg]] is a municipality in the [[w:Canton of Berne|Canton of Berne]]. 4 different stamps were issued in 1904, perforated 11.5 (A) or 14 (B). Next to these issues 28 special printings (S) exist imperforate (A), perforated 11.5 (B,C) or 14 (D).
[[File:CHE Aarberg BE COA.svg|thumb|right|100px]]
===1904===
<gallery>
Switzerland Aarberg 1904 revenue 30C - 3B.jpg|30c unused (B)
Switzerland Aarberg 1904 revenue 50C - 4B.jpg|50c unused (B)
</gallery>
Special printings.
<gallery>
Switzerland Aarberg 1904 revenue 10C - S1.jpg|10c unused
Switzerland Aarberg 1904 revenue 10C - S2B.jpg|10c unused
Switzerland Aarberg 1904 revenue 10C - S4.jpg|10c unused
Switzerland Aarberg 1904 revenue 20C - S6.jpg|20c unused
Switzerland Aarberg 1904 revenue 20C - S6C.jpg|20c unused
Switzerland Aarberg 1904 revenue 20C - S6D.jpg|20c unused
Switzerland Aarberg 1904 revenue 20C - S7.jpg|20c unused
Switzerland Aarberg 1904 revenue 20C - S7B.jpg|20c unused
Switzerland Aarberg 1904 revenue 20C - S8.jpg|20c unused
Switzerland Aarberg 1904 revenue 30C - S9B.jpg|30c unused
Switzerland Aarberg 1904 revenue 30C - S10C.jpg|30c unused
Switzerland Aarberg 1904 revenue 30C - S10D.jpg|30c unused
Switzerland Aarberg 1904 revenue 30C - S12.jpg|30c unused
Switzerland Aarberg 1904 revenue 30C - S12B.jpg|30c unused
Switzerland Aarberg 1904 revenue 50C - S13.jpg|50c unused
Switzerland Aarberg 1904 revenue 50C - S13C.jpg|50c unused
Switzerland Aarberg 1904 revenue 50C - S15.jpg|50c unused
Switzerland Aarberg 1904 revenue 50C - S15C.jpg|50c unused
Switzerland Aarberg 1904 revenue 50C - S15D.jpg|50c unused
Switzerland Aarberg 1904 revenue 50C - S16B.jpg|50c unused
Switzerland Aarberg 1904 revenue 30C - 50C - 20C se-tenant.jpg|30c - 50c - 20c se-tenant
</gallery>
==L'Abbaye (VD)==
[[w:L'Abbaye|L'Abbaye]] is a [[w:Municipalities of Switzerland|municipality]] in the canton of [[w:Vaud|Vaud]]. 4 different stamps were issued.
[[File:CHE L’Abbaye COA.svg|thumb|right|100px]]
<gallery>
Switzerland Abbaye revenue 10c - 3.jpg|10c entertainment tax unused
Switzerland Abbaye revenue 20c - 4.jpg|20c entertainment tax unused
</gallery>
==Adlisweil (ZH)==
[[w:Adliswil|Adlisweil or Adliswil]] is is a [[w:List of towns in Switzerland|town]] and a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Horgen (district)|Horgen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zurich (canton)|Zürich]]. 24 different stamps were issued between 1906 and 1948.
[[File:CHE Adliswil COA.svg|thumb|right|100px]]
<gallery>
Switzerland Adlisweil 1906 revenue 10c - 1.jpg|1906, 10c unused
Switzerland Adlisweil 1906 revenue 50c - 3.jpg|1906, 50c unused
Switzerland Adlisweil 1906 revenue 60c - 4.jpg|1906, 60c unused
Switzerland Adliswil 1915 revenue 30c - 8.jpg|1915, 30c used
</gallery>
==Albligen (BE)==
[[w:Albligen|Albligen]] (former French name: Albenon) is a former [[w:municipalities of Switzerland|municipality]] in the [[w:Bern-Mittelland (administrative district)|Bern-Mittelland administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]] in Switzerland. 4 different stamps were issued between 1910 and 1913.
[[File:CHE Albligen COA.svg|thumb|right|100px]]
<gallery>
Switzerland Albligen 1913 revenue 10Rp - 2.jpg|1913, 10Rp used
Switzerland Albligen 1913 revenue 20Rp - 3.jpg|1913, 20Rp used
</gallery>
==Amriswil (TG)==
[[w:Amriswil|Amriswil]] is a [[w:List of towns in Switzerland|town]] and a [[w:Municipalities of Switzerland|municipality]] in [[w:Arbon District|Arbon District]] in the [[w:Cantons of Switzerland|canton]] of [[w:Thurgau|Thurgau]]. 44 different stamps were issued between 1907 and 1970.
[[File:CHE Amriswil COA.svg|thumb|right|100px]]
<gallery>
Switzerland Amriswil 1932 revenue 50 - 33B.jpg|1932, 50Rp used (B)
</gallery>
==Arbon (TG)==
[[w:Arbon|Arbon]] is a [[w:Municipalities of Switzerland|municipality]] and district capital of the [[w:Arbon (district)|district of Arbon]] in the [[w:Cantons of Switzerland|canton]] of [[w:Thurgau|Thurgau]]. 33 different stamps were issued between 1908 and 1970.
[[File:Arbon-blazon.svg|thumb|right|100px]]
<gallery>
Switzerland Arbon 1916 revenue 1Fr - 10.jpg|1916, 1Fr used
Switzerland Arbon 1916 revenue 2Fr - 11.jpg|1916, 2Fr used
Switzerland Arbon 1938 revenue 30Rp - 17.jpg|1938, 30Rp unused
</gallery>
==Bellinzona (TI)==
[[w:Bellinzona|Bellinzona]] is the capital of the [[w:Cantons of Switzerland|canton]] [[w:Ticino|Ticino]]. 12 different stamps were issued between 1910 and 1962.
[[File:CHE Bellinzona COA.svg|thumb|right|100px]]
<gallery>
Switzerland Bellinzona 1910 revenue 50c - 1.jpg|1910, 50c used
Switzerland Bellinzona 1935 revenue 25c - 3.jpg|1935, 25c used
Switzerland Bellinzona 1935 revenue 1Fr - 5.jpg|1935, 1Fr used
</gallery>
==Biasca (TI)==
[[w:Biasca|Biasca]] is a town of the district of [[w:Riviera (district)|Riviera]] in the [[w:Cantons of Switzerland|canton]] of [[w:Ticino|Ticino]]. 7 different stamps were issued up to 1963.
[[File:CHE Biasca TI COA.svg|thumb|right|100px]]
<gallery>
Switzerland Biasca revenue 1Fr - 5.jpg|1Fr used
</gallery>
==Biel / Bienne (BE)==
[[w:Biel/Bienne|Biel/Bienne]] is a [[w:List of towns in Switzerland|town]] and a [[w:Municipalities of Switzerland|municipality]] in the [[w:Biel/Bienne (administrative district)|Biel/Bienne administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Berne]]. 88 different stamps were issued between 1892 and 1935.
[[File:CHE Biel COA.svg|thumb|right|100px]]
===Municipal tax===
<gallery>
Switzerland Biel Bienne 1892 revenue 25c - 1.jpg |1892, 25c used
Switzerland Biel Bienne 1892 revenue 50c - 2a.jpg|1892, 1Fr used (a)
Switzerland Biel Bienne 1892 revenue 1Fr - 3.jpg |1892, 1Fr used
Switzerland Biel Bienne 1903 revenue 50c - 4B.jpg|1903, 50c used (B)
Switzerland Biel Bienne 1903 revenue 2Fr - 6B.jpg|1903, 2Fr used (B)
Switzerland Biel Bienne 1932 revenue 2Fr - 6aB.jpg|1932, 2Fr unused (aB)
</gallery>
===Documents===
====1902-1910====
''Schriften-Controlle'', perforated 11.5. or 13.25 (1910 - B). 5 types can be distinguished of the 1902 issue, based on small line deformations in the lower half of the stamp.
<gallery>
Switzerland Biel Bienne 1902 revenue 20c - 9.jpg|1902, 20c used (T2)
Switzerland Biel Bienne 1902 revenue 45c - 11.jpg|1902, 45c unused (T3)
Switzerland Biel Bienne 1902 revenue 50c - 12.jpg|1902, 50c used (T3)
Switzerland Biel Bienne 1902 revenue 75c - 14.jpg|1902, 75c blue, unused (T3)
Switzerland Biel Bienne 1902 revenue 75c - 14a.jpg|1902, 75c blue-green, used (T2)
Switzerland Biel Bienne 1902 revenue 80c - 15.jpg|1902, 80c unused (T3)
Switzerland Biel Bienne 1902 revenue 1.30Fr - 17.jpg|1902, 1.30Fr used (T2)
Switzerland Biel Bienne 1910 revenue 50c - 21B.jpg|1910, 50c used (B)
Switzerland Biel Bienne 1910 revenue 1.30Fr - 25A.jpg|1910, 1.30Fr used (A)
</gallery>
====1919====
''Schriften-Kontrolle'', perforated 11.5.
<gallery>
Switzerland Biel Bienne 1919 revenue 50c - 26.jpg|1919, 50c used
Switzerland Biel Bienne 1919 revenue 80c - 27.jpg|1919, 80c used
</gallery>
===Police===
1918-1931. ''Polizei-Commissariat'', perforated 11.5.
<gallery>
Switzerland Biel Bienne 1918 police revenue 20c - 29.jpg|1918, 20c unused
Switzerland Biel Bienne 1918 police revenue 50c - 31.jpg|1918, 50c used
Switzerland Biel Bienne 1918 police revenue 1Fr - 32.jpg|1918, 1Fr used
Switzerland Biel Bienne 1918 police revenue 5Fr - 35.jpg|1918, 5Fr unused
</gallery>
===City of Biel===
1919-1921.
<gallery>
Switzerland Biel Bienne 1921 revenue 20c - 46.jpg|1921, 20c used
Switzerland city of Biel 1921 revenue sheet 11-47.jpg|1921, 30c unused sheet, left vertical row plate variety 'broken axe'
Switzerland Biel Bienne 1921 revenue 50c - 48.jpg|1921, 5Fr unused
Switzerland Biel Bienne 1921 revenue 1Fr - 49.jpg|1921, 1Fr unused
Switzerland Biel Bienne 1921 revenue 2.60Fr - 53.jpg|1921, 2.60Fr used
</gallery>
1926-1933.
<gallery>
Switzerland city of Biel 1926 revenue 20c - 58.jpg|1926, 20c used
Switzerland Biel Bienne 1926 revenue 50c - 59.jpg|1926, 50c used
Switzerland city of Biel 1926 revenue 2Fr - 63.jpg|1926, 2Fr used
Switzerland city of Biel 1926 revenue 2.60Fr - 64.jpg|1926, 2.60Fr used
Switzerland city of Biel 1926 revenue 3Fr - 65.jpg|1926, 3Fr used
Switzerland city of Biel 1926 revenue 100Fr - 70.jpg|1926, 100Fr used
Switzerland Biel Bienne 1933 revenue 20c - 73.jpg|1933, 20c used
Switzerland Biel Bienne 1933 revenue 1Fr - 78C.jpg|1933, 1Fr used (C)
Switzerland Biel Bienne 1933 revenue 2Fr - 80.jpg|1933, 2Fr used
</gallery>
==Bremgarten (AG)==
[[w:Bremgarten|Bremgarten]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Canton of Aargau|Canton of Aargau]]. 29 different stamps were issued between 1905 and 1940.
[[File:CHE Bremgarten AG COA.svg|thumb|right|100px]]
<gallery>
Switzerland Bremgarten 1932 revenue 5Fr - 18.jpg|1932, 5Fr unused
Switzerland Bremgarten 1940 revenue 10c - 22.jpg|1940, 10c unused
Switzerland Bremgarten 1940 revenue 20c - 23.jpg|1940, 20c unused
Switzerland Bremgarten 1940 revenue 50c - 24.jpg|1940, 50c unused
Switzerland Bremgarten 1940 revenue 1Fr - 25.jpg|1940, 1Fr unused
Switzerland Bremgarten 1940 revenue 10Fr - 28.jpg|1940, 10Fr unused
Switzerland Bremgarten 1940 revenue 20Fr - 29.jpg|1940, 20Fr unused
</gallery>
==Brig-Glis (VS)==
[[w:Brig-Glis|Brig-Glis]] is a [[w:List of towns in Switzerland|historic town]] and a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Brig (district)|Brig]] in the [[w:Canton of Valais|canton of Valais]]. 6 different stamps were issued in the 1930's, perforated 11.25 (A) or 13 (B) or 13x11.25 (C).
[[File:CHE Brig-Glis COA.svg|thumb|right|100px]]
<gallery>
Switzerland Brig revenue 5Rp - 1C.jpg|5rp unused (C)
Switzerland Brig revenue 10Rp - 2B.jpg|10rp unused (B)
Switzerland Brig revenue 15Rp - 3C.jpg|15rp used (C)
Switzerland Brig revenue 20Rp - 4A.jpg|20rp unused (A)
Switzerland Brig revenue 25Rp - 5A.jpg|25rp used (A)
Switzerland Brig revenue 30Rp - 6A.jpg|30rp used (A)
</gallery>
==Brügg (BE)==
[[w:Brügg, Bern|Brügg]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Biel/Bienne (administrative district)|Biel/Bienne administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]]. 12 different stamps were issued between 1907 and 1935.
[[File:CHE Brügg COA.svg|thumb|right|100px]]
<gallery>
Switzerland Brügg 1935 revenue 1Fr - 6.jpg|1935, 1Fr used
Switzerland Brügg 1935 revenue 50c - 9.jpg|1935, 50c used
</gallery>
==Burgdorf (BE)==
[[w:Burgdorf, Switzerlandland|Burgdorf]] is the largest city in [[w:Emmental|Emmental]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]]. 12 different stamps were issued in 1917. Four different perforations exist: 11.25x11.5 (A), 13 (B), 11.25x13 (C) and imperforate (D).
[[File:CHE Burgdorf BE COA.svg|thumb|right|100px]]
<gallery>
Switzerland Burgdorf 1917 revenue 5c - 1A.jpg|5c used (A)
Switzerland Burgdorf 1917 revenue 10c - 2B.jpg|10c used (2B)
Switzerland Burgdorf 1917 revenue 20c - 3A.jpg|20c used (A)
Switzerland Burgdorf 1917 revenue 20c - 3aB.jpg|20c used (B)
Switzerland Burgdorf 1917 revenue 30c - 4A.jpg|30c used (A)
Switzerland Burgdorf 1917 revenue 30c - 4B.jpg|30c used (B)
Switzerland Burgdorf 1917 revenue 50c - 5A.jpg|50c used (A)
Switzerland Burgdorf 1917 revenue 1Fr - 7A.jpg|1Fr used (A)
Switzerland Burgdorf 1917 revenue 2Fr - 8A.jpg|2Fr used (A)
</gallery>
==Cadenazzo (TI)==
[[w:Cadenazzo|Cadenazzo]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Bellinzona (district)|Bellinzona]], in the [[w:Cantons of Switzerland|canton]] of [[w:Ticino|Ticino]]. 5 different stamps were issued.
[[File:Cadenazzo-coat of arms.svg|thumb|right|100px]]
<gallery>
Switzerland Cadenazzo revenue 1Fr - 2.jpg|1Fr unused
</gallery>
==Castagnola (TI)==
[[w:Castagnola|Castagnola]] is a village on the northern shore of [[w:Lake Lugano|Lake Lugano]], below the mountain of [[w:Monte Brè|Monte Brè]], in the Swiss [[w:Ticino|canton of Ticino]]. Now a [[w:Quarter (country subdivision)|quarter]] of the city of [[Lugano]]. Until 1972 an independent municipality. 15 different stamps were issued from 1905.
<gallery>
Switzerland Castagnola revenue 1Fr - 11.jpg|1Fr used (№ 11)
</gallery>
==Chaux-de-Fonds, La (NE)==
[[w:La Chaux-de-Fonds|La Chaux-de-Fonds]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Neuchâtel (canton)|Neuchâtel]]. 60 different revenue stamps were issued from 1889.
[[File:CHE La Chaux-de-Fonds COA.svg|thumb|right|100px]]
<gallery>
Switzerland La Chaud-de-Fonds (Ne) 1929 revenue 6 2Fr - 31.jpg|1929 2Fr used on fragment
</gallery>
==Chenit, Le (VD)==
[[w:Le Chenit|Le Chenit]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 2 different entertainment tax stamps were issued in 1938.
[[File:CHE Le Chenit COA.svg|thumb|right|100px]]
<gallery>
Switzerland Le Chenit revenue 10c - 1.jpg|10c unused
Switzerland Le Chenit revenue 20c - 2.jpg|20c unused
</gallery>
==Corgémont (BE)==
[[w:Corgémont|Corgémont]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]] . 17 different stamps were issued.
[[File:CHE Corgémont COA.svg|right|100px]]
<gallery>
Switzerland Corgémont revenue 20c - 12.jpg|20c used
</gallery>
==Courrendlin (JU)==
[[w:Courrendlin|Courrendlin]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Delémont (district)|Delémont]] in the [[w:Cantons of Switzerland|canton]] of [[w:Jura (canton)|Jura]]. 10 different stamps were issued between 1901 and 1925.
[[File:CHE Courrendlin COA.svg|right|100px]]
<gallery>
Switzerland Courrendlin 1901 revenue 10c - 1A.jpg|1901, 10c grey, unused (A)
Switzerland Courrendlin 1901 revenue 30c - 3C.jpg|1901, 30c grey-olive, unused (C)
Switzerland Courrendlin 1901 revenue 40c - 4C.jpg|1901, 40c grey-olive, unused (C)
</gallery>
==Court (BE)==
[[w:Court, Switzerland|Court]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]]. 6 different stamps were issued in the 1900's.
[[File:CHE Court COA.svg|right|100px]]
<gallery>
Switzerland Court revenue 10c - 1.jpg|10c unused
Switzerland Court revenue 20c - 2.jpg|20c used
Switzerland Court revenue 50c - 3.jpg|50c unused
Switzerland Court revenue 1Fr - 4.jpg|1Fr unused
Switzerland Court revenue 5Fr - 6.jpg|5Fr unused
</gallery>
==Crissier (VD)==
[[w:Crissier|Crissier]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Ouest Lausannois District|Ouest Lausannois]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 11 different stamps were issued between 1905 and 1968. 3 special issues are known.
[[File:CHE Crissier COA.svg|right|100px]]
<gallery>
Switzerland Crissier 1907 revenue 2Fr - 3d.jpg|1907, 2Fr unused (d)
Switzerland Crissier 1908 revenue 3Fr - 4.jpg|1908, 3Fr unused
Switzerland Crissier 1911 revenue 4Fr - 8.jpg|1911, 4Fr unused
</gallery>
==Cully (VD)==
[[w:Cully|Cully]] is a former [[w:Municipalities of Switzerland|municipality]] in the [[w:Switzerland|Swiss]] [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 40 different stamps were issued from 1892. 7 special issues are known.
[[File:Cully-coat of arms.svg|right|100px]]
<gallery>
Switzerland Cully 1892 revenue 20c - 1.jpg|1892, 20c unused
Switzerland Cully 1908 revenue 3Fr - 10.jpg|1908, 3Fr unused
Switzerland Cully 1912 revenue 3Fr - 14.jpg|1912, 3Fr unused
Switzerland Cully 1913 revenue 3Fr - 15.jpg|1913, 3Fr unused
Switzerland Cully 1914 revenue 3Fr - 16.jpg|1914, 3Fr unused
Switzerland Cully 1915 revenue 3Fr - 17.jpg|1915, 3Fr unused
Switzerland Cully 1916 revenue 3Fr - 18.jpg|1916, 3Fr unused
Switzerland Cully 1917 revenue 3Fr - 19.jpg|1917, 3Fr unused
Switzerland Cully 1918 revenue 3Fr - 20.jpg|1918, 3Fr unused
</gallery>
==Delémont (JU)==
[[w:Delémont|Delémont]] is the [[w:Capital (political)|capital]] of the [[w:Switzerland|Swiss]] [[w:Cantons of Switzerland|canton]] of [[w:Canton of Jura|Jura]]. 44 different stamps were issued between 1904 and 1956.
[[File:CHE Delémont COA.svg|right|100px]]
<gallery>
Switzerland Delémont 1904 revenue 5c - 1.jpg|1904, 5c used
Switzerland Delémont 1904 revenue 10c - 2.jpg|1904, 10c used
Switzerland Delémont 1904 revenue 20c - 3.jpg|1904, 20c used
Switzerland Delémont 1904 revenue 1Fr - 5.jpg|1904, 1Fr used
Switzerland Delémont 1908 revenue 10c - 8B.jpg|1908, 10c used (B)
Switzerland_Delémont_1908_revenue_1Fr_-_12A.jpg|1908, 1Fr used (A)
</gallery>
==Dornach (SO)==
[[w:Dornach|Dornach]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Dorneck (district)|Dorneck]] in the [[w:Cantons of Switzerland|canton]] of [[w:Solothurn (canton)|Solothurn]]. 9 different stamps were issued.
[[File:CHE Dornach SO COA.svg|right|100px]]
<gallery>
Switzerland Dornach revenue 1Fr - 2.jpg|1Fr used
Switzerland Dornach revenue 2Fr - 3.jpg|2Fr used
</gallery>
==Échallens (VD)==
[[w:Échallens|Échallens]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Gros-de-Vaud District|Gros-de-Vaud]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 4 different entertainment tax stamps were issued.
[[File:CHE Echallens COA.svg|right|100px]]
<gallery>
Switzerland Échallens revenue 5c - 1.jpg|5c unused
Switzerland Échallens revenue 20c - 4.jpg|20c unused
</gallery>
==Evilard (BE)==
[[w:Evilard|Evilard]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Biel/Bienne (administrative district)|Biel/Bienne administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern|Bern]]. 14 different stamps were issued, perforated either 10 (A) or 11.5 (B).
[[File:CHE Evilard COA.svg|right|100px]]
<gallery>
Switzerland evilard revenue 10c - 1B.jpg|10c used (B)
Switzerland evilard revenue 50c - 4B.jpg|50c unused (B)
Switzerland evilard revenue 1Fr - 6B.jpg|1Fr unused (B)
</gallery>
==Giubasco (TI)==
[[w:Giubasco|Giubiasco]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Bellinzona (district)|Bellinzona]] in the [[w:Cantons of Switzerland|canton]] of [[w:Ticino|Ticino]]. 14 different stamps were issued between 1945 and 1992.
[[File:Giubiasco-coat of arms.svg|right|100px]]
<gallery>
Switzerland Giubasco revenue 0.50Fr - 1.jpg|50c used
Switzerland Giubasco revenue 1Fr - 7.jpg|1Fr used
</gallery>
==Grenchen (SO)==
[[w:Grenchen|Grenchen]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Lebern (district)|Lebern]] in the [[w:Cantons of Switzerland|canton]] of [[w:Solothurn (canton)|Solothurn]]. 47 different stamps were issued between 1919 and 1971.
[[File:Grenchen-blason.png|right|100px]]
===1923===
Arms of Gretchen. Four perforations exist: 11.25 (A), 11.5 (B), 13 (C) and 11.25x13 (D).
<gallery>
Switzerland Grenchen 1926 revenue 10c - 7B.jpg|10c used (B)
Switzerland Grenchen 1926 revenue 1.50Fr - 16B.jpg|1.50Fr used (B)
Switzerland Grenchen 1926 revenue 2Fr - 17B.jpg|2Fr used (B)
Switzerland Grenchen 1926 revenue 3Fr - 19C.jpg|3Fr used (C)
Switzerland Grenchen 1926 revenue 5Fr - 19C.jpg|5Fr used (C)
Switzerland Grenchen 1926 revenue 5Fr - 21B.jpg|5Fr used (B)
Switzerland Grenchen 1926 revenue 5.70Fr - 23A.jpg|5.70Fr used (A)
Switzerland Grenchen 1926 revenue 12Fr - 25aB.jpg|12Fr used (aB)
</gallery>
==Grüningen (ZH)==
[[w:Grüningen|Grüningen]] is a [[w:Municipalities of Switzerland|village]] in the district of [[w:Hinwil (district)|Hinwil]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zürich (canton)|Zürich]]. 18 different stamps were issued between 1932 and 1953.
[[File:CHE Grüningen COA.svg|right|100px]]
<gallery>
Switzerland Grüningen 1932 revenue 2Fr - 3A.jpg|1932, 2Fr unused (A)
</gallery>
==Guggisberg (BE)==
[[w:Guggisberg|Guggisberg]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Bern-Mittelland (administrative district)|Bern-Mittelland administrative district]] in the [[w:Switzerland|Swiss]] [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 7 different stamps were issued in 1908 and 2 tourism tax stamps.
[[File:CHE Guggisberg COA.svg|right|100px]]
<gallery>
Switzerland Guggisberg 1908 revenue 10c - 2B.jpg|10c used (B)
Switzerland Guggisberg 1908 revenue 20c - 3B.jpg|20c used (B)
Switzerland Guggisberg 1908 revenue 1Fr - 5B.jpg|1Fr used (B)
</gallery>
==Herisau (AR)==
[[w:Herisau|Herisau]] is a [[w:municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Appenzell Ausserrhoden|Appenzell Ausserrhoden]]. 33 different stamps were issued between 1889 and 1960.
[[File: Herisau wappen.svg|right|100px]]
<gallery>
Switzerland Herisau 1889 revenue 50c.jpg|1889, 50c used
Switzerland Herisau 1889 revenue 60c.jpg|1889, 60c unused
Switzerland Herisau 1889 revenue 80c.jpg|1889, 80c unused
Switzerland Herisau 1889 revenue 1Fr.jpg|1889, 1Fr unused
</gallery>
==Horgen (ZH)==
[[w:Horgen|Horgen]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Horgen (district)|Horgen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zurich (canton)|Zürich]]. 34 different stamps were issued between 1909 and 1936.
[[File:CHE Horgen COA (Ziegler).svg|right|100px]]
<gallery>
Switzerland Horgen 1909 revenue 70c - 7.jpg|1909, 70c used
Switzerland Horgen 1932 revenue 25c - 13B.jpg|1932, 25c used (B)
Switzerland Horgen 1932 revenue 25c - 13B detail.jpg|1932, detail of 25c used (B)
Switzerland Horgen 1936 revenue 25c - 24a.jpg|1936, 25c used (a)
Switzerland Horgen 1936 revenue 200c - 27.jpg|1936, 200c used
Switzerland Horgen 1936 revenue 300c - 28.jpg|1936, 300c used
Switzerland Horgen 1936 revenue 300c - 28 detail.jpg|1936, left tulip, detail of 300c used
</gallery>
==Huttwil (BE)==
[[w:Huttwil|Huttwil]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Oberaargau (administrative district)|Oberaargau administrative district]] in the [[w:Switzerland|Swiss]] [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 29 different stamps were issued from 1903.
[[File:CHE Habkern COA.svg|right|100px]]
===1903===
<gallery>
Switzerland Huttwil 1903 revenue 10c - 1.jpg|10c used
Switzerland Huttwil 1903 revenue 20c - 2.jpg|20c used
Switzerland Huttwil 1903 revenue 20c - 2 (2).jpg|20c used
Switzerland Huttwil 1903 revenue 30c - 3.jpg|30c used
Switzerland Huttwil 1903 revenue 40c - 4.jpg|40c used
Switzerland Huttwil 1903 revenue 50c - 5.jpg|50c used
Switzerland Huttwil 1903 revenue 1fr - 6.jpg|1Fr used
Switzerland Huttwil 1903 revenue 2Fr - 7.jpg|2Fr used
</gallery>
==Interlaken (BE)==
[[w:Interlaken|Interlaken]] is a [[w:List of towns in Switzerland|statistic town]] and [[w:Municipalities of Switzerland|municipality]] in the [[w:Interlaken-Oberhasli (administrative district)|Interlaken-Oberhasli administrative district]] in the [[w:Canton of Bern|Canton of Bern]]. 31 different stamps were issued between 1926 and 1933. Variations exist, some can be distinguished by measuring the distance between value numeral and 'Cts' or 'Fr'.
[[File:CHE Interlaken COA.svg|right|100px]]
<gallery>
Switzerland Interlaken 1926 revenue 5c - 1.jpg|1926, 5c used
Switzerland Interlaken 1926 revenue 10c - 2.jpg|1926, 10c used
Switzerland Interlaken 1926 revenue 30c - 4a.jpg|1926, 30c used (a)
Switzerland Interlaken 1926 revenue 50c - 5.jpg|1926, 50c used
</gallery>
==Kilchberg (ZH)==
[[w:Kilchberg|Kilchberg]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Horgen (district)|Horgen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zürich (canton)|Zürich]]. 32 different stamps were issued between c. 1916 and 1952.
[[File:CHE Kilchberg COA.svg|right|100px]]
===c. 1916===
<gallery>
Switzerland Kilchberg 1916 revenue 5c - 1.jpg|5c used
Switzerland Kilchberg 1916 revenue 30c - 3.jpg|30c used
Switzerland Kilchberg 1916 revenue 60c - 5.jpg|60c used
Switzerland Kilchberg 1916 revenue 75c - 6.jpg|75c used
Switzerland Kilchberg 1916 revenue 5Fr - 9.jpg|5Fr used
Switzerland Kilchberg 1916 revenue 10Fr - 10.jpg|10Fr used
Switzerland Kilchberg 1916 revenue 25Fr - 11.jpg|25Fr used
</gallery>
===1941===
<gallery>
Switzerland Kilchberg 1941 revenue 20c - 12.jpg|20c used
Switzerland Kilchberg 1941 revenue 50c - 13.jpg|50c used
Switzerland Kilchberg 1941 revenue 1Fr - 14.jpg|1Fr used
Switzerland Kilchberg 1941 revenue 2Fr - 15.jpg|2Fr used
</gallery>
==Köniz (BE)==
[[w:Köniz|Köniz]] is a [[w:List of towns in Switzerland|statistical town]], however considers itself still as a village, and a [[w:Municipalities of Switzerland|municipality]] in the [[w:Bern-Mittelland (administrative district)|Bern-Mittelland administrative district]] right on the southern border to [[w:Bern|Bern]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 43 different stamps were issued from 1901.
[[File:CHE Köniz COA.svg|right|100px]]
<gallery>
Switzerland Köniz 1901 revenue 50rp - 1.jpg|1901, 50rp
Switzerland Köniz 1903 revenue 50rp - 3.jpg|1903, 50rp
Switzerland Köniz 1920 revenue 20c - 7A.jpg|1920, 20c - (A)
Switzerland Köniz 1920 revenue 20c - 7B.jpg|1920, 20c - (B)
</gallery>
==Kreuzlingen (TG)==
[[w:Kreuzlingen|Kreuzlingen]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Kreuzlingen (district)|Kreuzlingen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Thurgau|Thurgau]]. 33 different stamps were issued between 1908 and 1980. One tourism revenue stamp was also issued.
[[File:Kreuzlin.GIF|right|100px]]
<gallery>
Switzerland Kreuzlingen 1920 revenue 200c - 9B.jpg|1920, 200c - (B)
Switzerland Kreuzlingen 1941 revenue 50c - 14A.jpg|1941, 50c - (A)
Switzerland Kreuzlingen 1941 revenue 30c - 18A.jpg|1941, 30c - (A)
Switzerland Kreuzlingen 1941 revenue 50c - 19A.jpg|1941, 50c - (A)
Switzerland Kreuzlingen 1941 revenue 50c - 14A detail.jpg|1941, 50c detail - (A)
Switzerland Kreuzlingen 1941 revenue 50c - 19A detail.jpg|1941, 50c detail - (A)
</gallery>
==Küsnacht (ZH)==
[[w:Kreuzlingen|Küsnacht]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Meilen (district)|Meilen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zurich (canton)|Zurich]]. 8 different stamps were issued in 1901.
[[File:CHE Küsnacht COA.svg|right|100px]]
<gallery>
Switzerland Küsnacht 1901 revenue 5c - 1.jpg|5c used
Switzerland Küsnacht 1901 revenue 30c - 3.jpg|30c used
Switzerland Küsnacht 1901 revenue 60c - 5.jpg|60c used
Switzerland Küsnacht 1901 revenue 60c - 5a.jpg|60c used (a)
</gallery>
==Langenthal (BE)==
[[w:Langenthal|Langenthal]] is a town and a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Oberaargau (administrative district)|Oberaargau]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 36 different stamps were issued between 1907 and 1950.
[[File:CHE Langenthal COA.svg|right|100px]]
<gallery>
Switzerland Langenthal 1907 revenue 20c - 3A.jpg|1907, 20c used (A)
Switzerland Langenthal 1907 revenue 50c - 5A.jpg|1907, 50c used (A)
</gallery>
==Laufen / Laufon (BE, 1994: BL)==
[[w:Laufen|Laufen]] is a [[w:Municipalities of Switzerland|municipality]] and the capital of the district of [[w:Laufen (district)|Laufen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Basel-Country|Basel-Country]]. 7 different stamps were issued in 1908, perforated either 11 (A) or 11.5 (B).
[[File:CHE Laufen BL official COA.svg|right|100px]]
<gallery>
Switzerland Laufen 1908 revenue 20c - 1B.jpg|20c unused (B)
Switzerland Laufen 1908 revenue 30c - 2B.jpg|30c used (B)
Switzerland Laufen 1908 revenue 1Fr - 4A.jpg|1Fr used (A)
Switzerland Laufen 1908 revenue 20c - 1B-4bB on fragment.jpg|20c-1Fr used on fragment (B-bB)
</gallery>
==Lausanne (VD)==
[[w:Lausanne|Lausanne]] is the capital and largest city of the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 103 different stamps were issued between 1878 and 1950.
[[File:CHE Lausanne COA.svg|right|100px]]
<gallery>
Switzerland Lausanne 1893 revenue 10Fr - 14.jpg|1893, 10Fr
Switzerland Lausanne 1925 revenue 10c - 20B.jpg|1925, 10c - (B)
</gallery>
==Lieu, Le (VD)==
[[w:Le Lieu|Le Lieu]] is a [[w:Communes of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 4 different stamps were issued in c. 1930.
[[File:CHE Le Lieu COA.svg|right|100px]]
<gallery>
Switzerland Le Lieu revenue 10c - 3.jpg|10c entertainment tax unused
Switzerland Le Lieu revenue 20c - 4.jpg|20c entertainment tax unused
Switzerland Le Lieu school tax 10c.jpg|10c school tax unused
</gallery>
==Locle, Le (NE)==
[[w:Le Locle|Le Locle]] is a [[w:Communes of Switzerland|municipality]] in [[w:Le Locle District|the Le Locle District]] in the [[w:Canton of Neuchâtel|Canton of Neuchâtel]]. 22 different stamps were issued between 1892 and 1950.
[[File:Le Locle-coat of arms.svg|right|100px]]
<gallery>
Switzerland Le Locle 1892 revenue 5c - 1.jpg|1892, 5c unused
Switzerland Le Locle 1892 revenue 20c - 2.jpg|1892, 20c used
Switzerland Le Locle 1892 revenue 50c - 3.jpg|1892, 50c used
Switzerland Le Locle 1892 revenue 1Fr - 4.jpg|1892, 1Fr used
</gallery>
==Lugano (TI)==
[[w:Lugano|Lugano]] is a city in southern [[w:Switzerland|Switzerland]] in the [[w:Languages of Switzerland|Italian-speaking]] [[w:cantons of Switzerland|canton]] of [[w:Ticino|Ticino]]. 21 different stamps were issued between 1893 and 1931.
[[File:CHE Lugano COA.svg|right|100px]]
<gallery>
Switzerland Lugano 1893 revenue 1Fr - 1.jpg|1893, 1Fr used
Switzerland Lugano 1893 revenue 1Fr - 1a.jpg|1893, 1Fr used (a)
Switzerland Lugano 1893 revenue 2Fr - 3a.jpg|1893, 2Fr used (a)
Switzerland Lugano 1893 revenue 5Fr - 4.jpg|1893, 5Fr used
Switzerland Lugano 1905 revenue 20c - 6.jpg|1905, 20c used
Switzerland Lugano 1905 revenue 50c - 7.jpg|1905, 50c used
Switzerland Lugano 1931 revenue 50c - 18A.jpg|1931, 50c used (A)
Switzerland Lugano 1931 revenue 50c - 18A detail.jpg|1931, 50c detail (A)
</gallery>
==Lützelflüh (BE)==
[[w:Lützelflüh|Lützelflüh]] is a [[w:Municipalities of Switzerland|municipality]] in the administrative district of [[w:Emmental (administrative district)|Emmental]] in the [[w:Switzerland|Swiss]] [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 15 different stamps were issued between 1904 and 1957.
[[File:CHE Lützelflüh COA.svg|right|100px]]
<gallery>
Switzerland Lützelflüh 1904 revenue 50c - 1.jpg|1904, 50c used
Switzerland Lützelflüh 1906 revenue 50c - 2.jpg|1906, 50c used
Switzerland Lützelflüh 1908 revenue 50c - 3.jpg|1908, 50c used
</gallery>
==Madretsch (BE)==
[[w:Madretsch|Madretsch]] is a former commune in the Swiss canton of [[w:Bern (canton)|Bern]]. Now a suburb of [[w:Biel/Bienne|Biel/Bienne]], which it joined in 1920. 5 different stamps were issued in 1903.
[[File:CHE Madretsch COA.svg|right|100px]]
<gallery>
Switzerland Madretsch 1903 revenue 20c - 1 pair.jpg|20c unused
Switzerland Madretsch 1903 revenue 30c - 2 pair.jpg|30c unused
Switzerland Madretsch 1903 revenue 50c - 3.jpg|50c unused
Switzerland Madretsch 1903 revenue 50c - 3 print flaw.jpg|50c unused
Switzerland Madretsch 1903 revenue 75c - 4.jpg|75c used
Switzerland Madretsch 1903 revenue 75c - 4 pair.jpg|75c used
Switzerland Madretsch 1903 revenue 1Fr - 5.jpg|1Fr unused
</gallery>
==Mett (BE)==
Mett is a former commune in the Swiss canton of [[w:Bern (canton)|Bern]]. Now a suburb of [[w:Biel/Bienne|Biel/Bienne]], which it joined in 1920. 5 different stamps were issued in 1916.
<gallery>
Switzerland Mett 1916 revenue 10c - 1.jpg|10c used
Switzerland Mett 1916 revenue 20c - 3.jpg|20c used
</gallery>
==Monthey (VS)==
[[w:Monthey|Monthey]] is the [[w:Capital (political)|capital]] of the district of [[w:Monthey (district)|Monthey]] in the [[w:Cantons of Switzerland|canton]] of [[w:Valais|Valais]]. 17 different stamps were issued.
[[File:Monthey - Wappen.svg|thumb|right|100px]]
<gallery>
Switzerland Monthey 2 10c - 3.jpg|10c unused
Switzerland Monthey 2 20c - 13.jpg|20c unused
</gallery>
==Montreux (VD)==
[[w:Montreux|Montreux]] is a [[w:municipalities of Switzerland|municipality]] in the district of [[w:Riviera-Pays-d'Enhaut (district)|Riviera-Pays-d'Enhaut]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 18 different tourism tax stamps were issued.
[[File:CHE Montreux COA.svg|thumb|right|100px]]
<gallery>
Switzerland Montreux tourism revenue 2 50c - 2.jpg|50c unused
</gallery>
==Moutier (BE)==
[[w:Moutier|Moutier]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 22 different tax stamps were issued between 1915 and 1945.
[[File:CHE Moutier COA.svg|thumb|right|100px]]
<gallery>
Switzerland Moutier 1915 revenue 1 10c - 1.jpg|1915, 10c used
Switzerland Moutier 1915 revenue 1 10c - 2.jpg|1915, 10c unused
Switzerland Moutier 1915 revenue 1 20c - 3.jpg|1915, 20c unused
Switzerland Moutier 1915 revenue 1 50c - 4.jpg|1915, 50c used
Switzerland Moutier 1915 revenue 1 5Fr - 7a.jpg|1915, 5Fr used (a)
Switzerland Moutier 1945 revenue 2 20c - 9.jpg|1945, 20c used
Switzerland Moutier 1945 revenue 2 20c - 9a.jpg|1945, 20c used (a)
Switzerland Moutier 1945 revenue 2 2Fr - 14B.jpg|1945, 2Fr used (B)
Switzerland Moutier 1945 revenue 2 3Fr - 15B.jpg|1945, 3Fr used (B)
</gallery>
==Muri (AG)==
[[w:Muri|Muri]], formerly known as Muri ([[w:Freiamt|Freiamt]]), is a municipality in southeastern Swiss [[w:Canton (country subdivision)|Canton]] [[w:Aargau|Aargau]] and is the capital of same district . 26 different tax stamps were issued.
[[File:CHE Muri COA.svg|thumb|right|100px]]
<gallery>
Switzerland Muri revenue 2 10rp - 7B.jpg|C. 1923, 10rp used (B)
Switzerland Muri revenue 2 20rp - 8B.jpg|C. 1923, 20rp used (B)
</gallery>
==Muttenz (BL)==
[[w:Muttenz|Muttenz]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Basel-Country|Basel-Country]]. 30 different tax stamps were issued from 1930.
[[File:Muttenz.png|thumb|right|100px]]
<gallery>
Switzerland Muttenz 1930 revenue 1 50c - 1.jpg|50rp unused
Switzerland Muttenz 1930 revenue 1 2Fr on 50c - 4.jpg|2Fr on 50c used
</gallery>
==Neuhausen am Rheinfall (SH)==
[[w:Neuhausen am Rheinfall|Neuhausen am Rheinfall]] (which was called '''Neuhausen''' until 1938) is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Schaffhausen (canton)|Schaffhausen]]. 18 different tax stamps were issued from 1919 to 1947.
[[File:Neuhausen am Rheinfall-coat of arms.svg|thumb|right|100px]]
<gallery>
Switzerland Neuhausen 1919 revenue 1 50c - 5B.jpg|50c used (B)
</gallery>
==Neuveville, La (BE)==
[[w:La Neuveville|La Neuveville]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 8 different tax stamps were issued, dates are unknown.
[[File:CHE La Neuveville COA.svg|thumb|right|100px]]
<gallery>
Switzerland La Neuveville revenue 1 1Fr - 1.jpg|1Fr unused
Switzerland La Neuveville revenue 2 50c - 3a.jpg|50c unused (a)
Switzerland La Neuveville revenue 2 3Fr - 4.jpg|3Fr used
</gallery>
==Nidau (BE)==
[[w:Nidau|Nidau]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Biel/Bienne (administrative district)|Biel/Bienne administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 19 different tax stamps were issued from 1910.
[[File:CHE Nidau COA.svg|thumb|right|100px]]
<gallery>
Switzerland Nidau 1910 revenue 1 10c - 1.jpg|1910, 10c used
Switzerland Nidau 1910 revenue 1 15c - 2.jpg|1910, 15c used
Switzerland Nidau 1928 revenue 2 10c - 6.jpg|1928, 10c used
Switzerland Nidau 1928 revenue 2 20c - 8.jpg|1928, 20c used
Switzerland Nidau 1928 revenue 4 20c - 17C.jpg|1928, 20c used (C)
</gallery>
==Niederbipp (BE)==
[[w:Niederbipp|Niederbipp]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Oberaargau (administrative district)|Oberaargau administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 19 different tax stamps were issued to c. 1976.
[[File:CHE Niederbipp COA.svg|thumb|right|100px]]
<gallery>
Switzerland Niederbipp revenue 1 10c - 1A.jpg|10c used (A)
Switzerland Niederbipp revenue 1 10c - 1B.jpg|10c used (B)
Switzerland Niederbipp revenue 1 20c - 4A.jpg|20c used (A)
Switzerland Niederbipp revenue 1 50c - 5B.jpg|50c used (B)
Switzerland Niederbipp revenue 1 1Fr - 6B.jpg|1Fr used (B)
</gallery>
==Ollon (VD)==
[[w:Ollon|Ollon]] is a [[w:municipalities of Switzerland|municipality]] in the district of [[w:Aigle (district)|Aigle]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 9 different tax stamps were issued from c. 1903.
[[File:CHE Ollon VD COA.svg|thumb|right|100px]]
<gallery>
Switzerland Ollon revenue 1 1.jpg|used
Switzerland Ollon 1906 revenue 1 4.jpg|1906 used
</gallery>
==Ponts-de-Martel, Les (NE)==
[[w:Les Ponts-de-Martel|Les Ponts-de-Martel]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Locle (district)|Le Locle]] in the [[w:Cantons of Switzerland|canton]] of [[w:Neuchâtel (canton)|Neuchâtel]]. 14 different tax stamps were issued from 1892.
[[File:CHE Les Ponts-de-Martel COA.svg|thumb|right|100px]]
<gallery>
Switzerland Les Ponts-de-Martel 1892 revenue 1 5c - 1.jpg|1892, 5c unused
Switzerland Les Ponts-de-Martel 1892 revenue 1 20c - 2.jpg|1892, 20c used
Switzerland Les Ponts-de-Martel 1892 revenue 1 50c - 3.jpg|1892, 50c used
Switzerland Les Ponts-de-Martel 1892 revenue 1 1Fr - 4.jpg|1892, 1Fr used
</gallery>
==Rapperswil (SG)==
[[w:Rapperswil|Rapperswil]] is a former municipality and since January 2007 part of the [[w:Municipalities of Switzerland|municipality]] of [[w:Rapperswil-Jona|Rapperswil-Jona]] in the ''Wahlkreis'' (constituency) of [[w:See-Gaster (Wahlkreis)|See-Gaster]] in the [[w:Cantons of Switzerland|canton]] of [[w:St. Gallen (canton)|St. Gallen]]. 47 different tax stamps were issued between 1917 and 1920. 1917 issue exists in white (A) and buff (B) paper.
[[File:Rapperswil CoA.svg|thumb|right|100px]]
<gallery>
Switzerland Rapperswil 1917 revenue 1 85r - 8A.jpg|1917, 85r unused (A)
Switzerland Rapperswil 1917 revenue 1 20r - 16B.jpg|1917, 20r unused (B)
Switzerland Rapperswil 1917 revenue 1 2Fr - 20A.jpg|1917, 2Fr unused (A)
Switzerland Rapperswil 1920 revenue 2 10r - 28.jpg|1920, 10r unused
Switzerland Rapperswil 1920 revenue 2 15r - 29.jpg|1920, 15r unused
Switzerland Rapperswil 1920 revenue 2 30r - 32.jpg|1920, 30r unused
Switzerland Rapperswil 1920 revenue 3 1Fr - 37.jpg|1920, 1Fr unused
Switzerland Rapperswil 1920 revenue 3 5Fr - 45.jpg|1920, 5Fr unused
Switzerland Rapperswil 1920 revenue 3 2.40Fr - 47.jpg|1920, 2.40Fr surcharge unused
</gallery>
==Reconvilier (BE)==
[[w:Reconvilier|Reconvilier]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 9 different tax stamps were issued between 1904 and 1919.
[[File:CHE Reconvilier COA.svg|thumb|right|100px]]
<gallery>
Switzerland Reconvilier 1904 revenue 1 50c - 1.jpg|1904, 50c used, bisected usage was allowed
Switzerland Reconvilier 1919 revenue 2 10c - 2.jpg|1919, 10c black on blue-grey used
Switzerland Reconvilier 1919 revenue 2 10c - 2a.jpg|1919, 10c black on blue used (a)
Switzerland Reconvilier 1919 revenue 2 20c - 3a.jpg|1919, 20c red on yellow (a)
Switzerland Reconvilier 1919 revenue 2 30c - 4.jpg|1919, 30c carmine on lilac-rose
</gallery>
==Reinach (AG)==
[[w:Reinach, Aargau|Reinach, Aargau]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Kulm (district)|Kulm]] in the [[w:Cantons of Switzerland|canton]] of [[w:Aargau|Aargau]]. 8 different tax stamps were issued ca. 1925.
[[File:CHE Reinach AG COA.svg|thumb|right|100px]]
<gallery>
Switzerland Reinach AG 1925 revenue 50c - 4.jpg|1925 50c used
Switzerland Reinach AG 1925 revenue 5Fr - 7.jpg|1925 5Fr used
Switzerland Reinach AG 1925 revenue 10Fr - 8.jpg|1925 10Fr used
</gallery>
==Renens (VD)==
[[w:Renens|Renens]] is a [[w:Municipalities of Switzerland|municipality]] in the canton of [[w:Vaud|Vaud]]. It is located in the district of [[w:Ouest Lausannois District|Ouest Lausannois]], and is a suburb of the city of [[w:Lausanne|Lausanne]]. It is the fourth largest city in the canton. 63 different tax stamps were issued between 1904 and the 1940's.
[[File:CHE Renens COA.svg|thumb|right|100px]]
===Civil tax===
<gallery>
Switzerland Renens 1910 revenue 4 1Fr - 19B.jpg|1908-1910 1Fr (B)
Switzerland Renens 1911 revenue 5 4Fr - 25aC detail.jpg|1911 large 'P'
Switzerland Renens 1911 revenue 5 4Fr - 26aC detail.jpg|1911 small 'P'
Switzerland Renens 1911 revenue 5 3Fr - 23B.jpg|1911 3Fr (B)
Switzerland Renens 1911 revenue 5 4Fr - 25aC and 26aC pair.jpg|1911 4Fr (aC)
Switzerland Renens 1912 revenue 6 2Fr - 27.jpg|1912 2Fr
Switzerland Renens 1912 revenue 6 3Fr - 28.jpg|1912 3Fr
Switzerland Renens 1912 revenue 6 4Fr - 29.jpg|1912 4Fr
Switzerland Renens 1913 revenue 6 4Fr - 32.jpg|1913 4Fr
Switzerland Renens 1914 revenue 6 2Fr - 33.jpg|1914 2Fr
Switzerland Renens 1915 revenue 6 3Fr - 37.jpg|1915 3Fr
Switzerland Renens 1915 revenue 6 4Fr - 38.jpg|1915 4Fr
Switzerland Renens 1916 revenue 6 2Fr - 39.jpg|G1916 2Fr
Switzerland Renens 1916 revenue 6 3Fr - 40.jpg|1916 3Fr
Switzerland Renens 1916 revenue 6 4Fr - 41.jpg|1916 4Fr
Switzerland Renens 1917 revenue 6 2Fr - 42.jpg|1917 2Fr
</gallery>
===Non-firebrigade tax===
'Taxe non-pompier', tax levied only at cantonal and municipal level. The non-fire brigade tax is not considered as being one of the 'taxes for particular services rendered' which, without exception, are to be paid by the beneficiaries of privileges and immunities. It is calculated on the taxpayer's income.
<gallery>
Switzerland Renens 1912 revenue 8 2Fr - 46.jpg|1912 2Fr
Switzerland Renens 1913 revenue 9 2Fr - 47.jpg|1913 2Fr
Switzerland Renens 1915 revenue 10 2Fr - 49.jpg|1915 2Fr
</gallery>
==Riehen (BS)==
[[w:Riehen|Riehen]] is a [[w:Municipalities of Switzerland|municipality]], in the [[w:Cantons of Switzerland|canton]] of [[w:Basel-Stadt|Basel-Stadt]]. 3 different tax stamps were issued around 1907.
[[File:CHE Riehen COA.svg|thumb|right|100px]]
<gallery>
Switzerland Riehen 1907 revenue 0.50Fr - 1A.jpg|1907 0.50Fr (A)
Switzerland Riehen 1907 revenue 1Fr - 2A.jpg|1907 1Fr (A)
Switzerland Riehen 1907 revenue 1Fr - 2B.jpg|1907 1Fr (B)
</gallery>
==Riggisberg (BE)==
[[w:Riggisberg|Riggisberg]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Bern-Mittelland (administrative district)|Bern-Mittelland administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 4 different tax stamps were issued in 1921.
[[File:CHE Riggisberg COA.svg|thumb|right|100px]]
<gallery>
Switzerland Riggisberg 1921 revenue 20rp - 2.jpg|1921 20rp
</gallery>
==Roggwil (BE)==
[[w:Roggwil, Bern|Roggwil, Bern]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Oberaargau (administrative district)|Oberaargau administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 34 different tax stamps were issued from 1916.
[[File:CHE Roggwil BE COA.svg|thumb|right|100px]]
<gallery>
Switzerland Roggwil 1920 revenue 3 10rp - 14.jpg|1920 10rp
Switzerland Roggwil 1920 revenue 3 20rp - 15.jpg|1920 20rp
</gallery>
==Rorschach (SG)==
[[w:Rorschach, Switzerland|Rorschach, Switzerland]] is a [[w:Municipalities of Switzerland|municipality]], in the [[w:Cantons of Switzerland|canton]] of [[w:St. Gallen (canton)|St. Gallen]]. 60 different tax stamps were issued from 1909 to 1956.
[[File:CHE Rorschach COA.svg|thumb|right|100px]]
<gallery>
Switzerland Rorschach 1909 revenue 5c - 1.jpg|1909 5c
Switzerland Rorschach 1909 revenue 10c - 2.jpg|1909 10c
Switzerland Rorschach 1909 revenue 20c - 3.jpg|1909 20c
Switzerland Rorschach 1909 revenue 25c - 4.jpg|1909 25c
Switzerland Rorschach 1909 revenue 30c - 5.jpg|1909 30c
Switzerland Rorschach 1909 revenue 50c - 7.jpg|1909 50c
Switzerland Rorschach 1909 revenue 100c - 10.jpg|1909 100c
Switzerland Rorschach 1909 revenue 1Fr - 11.jpg|1917 1Fr
Switzerland Rorschach 1909 revenue 2Fr - 12.jpg|1917 2Fr
Switzerland Rorschach 1909 revenue 4Fr - 13.jpg|1917 4Fr
Switzerland Rorschach 1909 revenue 5Fr - 14.jpg|1917 5Fr
</gallery>
==Rüti (ZH)==
[[w:Rüti, Zürich|Rüti, Zürich]] is a [[w:municipalities of Switzerland|municipality]] in the district of [[w:Hinwil (district)|Hinwil]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zürich (canton)|Zürich]]. 10 different tax stamps were issued in 1936.
[[File:Rueti-blazon.svg|thumb|right|100px]]
<gallery>
Switzerland Rüti (Zürich) 1936 revenue stamp 1Fr - 4.jpg |1936 1Fr
</gallery>
==Saanen (BE)==
[[w:Saanen|Saanen]] is a [[w:municipalities of Switzerland|municipality]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Berne]]. It is the capital of the [[w:Obersimmental-Saanen (administrative district)|Obersimmental-Saanen administrative district]]. 25 different tax stamps were issued, dates are unknown.
[[File:CHE Saanen COA.svg|thumb|right|100px]]
<gallery>
Switzerland Saanen revenue stamp 20c - 1.jpg|20c
Switzerland Saanen revenue stamp 50c - 2.jpg|50c
Switzerland Saanen revenue stamp 1Fr - 7.jpg|1Fr
Switzerland Saanen revenue stamp 50rp - 21.jpg|50rp
Switzerland Saanen revenue stamp 1Fr - 22.jpg|1Fr
</gallery>
==Sainte-Croix (VD)==
[[w:Sainte-Croix, Switzerland|Sainte-Croix]] is a [[w:Municipalities of Switzerland|municipality]] in the district of [[w:Jura-North Vaudois District|Jura-Nord Vaudois]] in the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]]. 5 different tax stamps were issued from 1894.
[[File:CHE Sainte-Croix COA.svg|thumb|right|100px]]
<gallery>
Switzerland St Croix 1894 revenue 1 20c - 1.jpg|1894 20c
Switzerland St Croix 1894 revenue 1 50c - 2.jpg|1894 50c
Switzerland St Croix 1894 revenue 1 1Fr - 3a.jpg|1894 1Fr (a)
</gallery>
==Saint-Imier (BE)==
[[w:Saint-Imier|Saint-Imier]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]]. It is located in the French-speaking [[w:Bernese Jura|Bernese Jura]] (''Jura Bernois''). Saint-Imier issued school revenues, unlisted in catalogues.
[[File:CHE Saint-Imier COA.svg|thumb|right|100px]]
<gallery>
Switzerland St. Imier school revenue 10c brown unused.jpg|10c school revenue
Switzerland St. Imier school revenue 10c red unused.jpg|10c school revenue
</gallery>
==Saint-Maurice (VS)==
[[w:Saint-Maurice, Switzerland|Saint-Maurice]], or 'Saint-Maurice d'Agaune', is a small city located in the [[w:Cantons of Switzerland|canton]] of [[w:Valais|Valais]]. It is also the capital of the district and of the [[w:Municipalities of Switzerland|municipality]] of Saint-Maurice. 5 different tax stamps were issued.
[[File:CHE_St_Maurice_COA.svg|thumb|right|100px]]
<gallery>
Switzerland St. Maurice revenue 2Fr - 5.jpg|2Fr unused
</gallery>
==La Sarraz (VD)==
[[w:La Sarraz|La Sarraz]] is a [[w:Municipalities of Switzerland|municipality]] of the [[w:Cantons of Switzerland|canton]] of [[w:Vaud|Vaud]], located in the district of [[w:Morges District|Morges]]. 3 different tax stamps were issued from 1904.
[[File:CHE La Sarraz COA.svg|thumb|right|100px]]
<gallery>
Switzerland La Sarraz 1904 revenue 1 1.jpg|1904 3Fr
</gallery>
==Schaffhausen City (SH)==
[[w:Schaffhausen|Schaffhausen]] is a [[w:List of towns in Switzerland|town with historic roots]], a [[w:Municipalities of Switzerland|municipality]] in northern Switzerland, and the capital of the [[w:canton of Schaffhausen|canton of the same name]]. 23 different tax stamps were issued from 1904.
[[File:Schaffhouse-coat of arms.svg|thumb|right|100px]]
<gallery>
Switzerland Schaffhausen City 1913 revenue 1 5aA.jpg|1913 50c (aA)
Switzerland Schaffhausen City 1919 revenue 2 11a.jpg|1919 1Fr (a)
</gallery>
==Spiez (BE)==
[[w:Spiez|Spiez]] is a town and [[w:Municipalities of Switzerland|municipality]] on the shore of [[w:Lake Thun|Lake Thun]] in the [[w:Bernese Oberland|Bernese Oberland]] region of the [[w:Switzerland|Swiss]] [[w:canton of Bern|canton of Bern]]. It is part of the [[w:Frutigen-Niedersimmental (administrative district)|Frutigen-Niedersimmental administrative district]]. 20 different tax stamps were issued.
[[File:CHE Spiez COA.svg|thumb|right|100px]]
<gallery>
Switzerland Spiez revenue 10c 1A.jpg|10c (A)
Switzerland Spiez revenue 20c 2A.jpg|20c (A)
Switzerland Spiez revenue 50c 3A.jpg|50c (A)
</gallery>
==Steffisburg (BE)==
[[w:Steffisburg|Steffisburg]] is a [[w:Municipalities of Switzerland|municipality]] in the administrative district of [[w:Thun (administrative district)|Thun]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 18 different tax stamps were issued.
[[File:CHE Steffisburg COA.svg|thumb|right|100px]]
<gallery>
Switzerland Steffisburg revenue 30c 2B.jpg|30c (B)
</gallery>
==Sumiswald (BE)==
[[w:Sumiswald|Sumiswald]] is a [[w:municipalities of Switzerland|municipality]] in the [[w:Districts of Switzerland|district]] of the [[w:Emmental (administrative district)|Emmental administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Canton of Bern|Bern]]. 49 different tax stamps were issued from 1902 to 1975.
[[File:CHE Sumiswald COA.svg|thumb|right|100px]]
===1902===
<gallery>
Switzerland Sumiswald 1902 revenue group 1 detail.jpg|1902 detail, slanted 'e'
Switzerland Sumiswald 1902 revenue 10c 1.jpg|10c
Switzerland Sumiswald 1902 revenue 30c 3.jpg|30c
Switzerland Sumiswald 1902 revenue 50c 5.jpg|50c
</gallery>
===1905===
<gallery>
Switzerland Sumiswald 1905 revenue group 2 detail.jpg|1905 detail
Switzerland Sumiswald 1905 revenue 10c 7.jpg|10c
Switzerland Sumiswald 1905 revenue 20c 8.jpg|20c
Switzerland Sumiswald 1905 revenue 30c 9.jpg|30c
Switzerland Sumiswald 1905 revenue 40c 10.jpg|40c
Switzerland Sumiswald 1905 revenue 50c 11.jpg|50c
Switzerland Sumiswald 1905 revenue 1Fr 12.jpg|1Fr
</gallery>
===Ca. 1917===
<gallery>
Switzerland Sumiswald 1917 revenue 10c 13 detail.jpg|1917 detail, no dots in horizontal bar
Switzerland Sumiswald 1917 revenue 10c 13.jpg|10c
Switzerland Sumiswald 1917 revenue 20c 14.jpg|20c
Switzerland Sumiswald 1917 revenue 50c 16.jpg|50c
</gallery>
===Ca. 1916===
Design in blue.
<gallery>
Switzerland Sumiswald 1916 revenue 1Fr 23B.jpg|1Fr (B)
Switzerland Sumiswald 1916 revenue 3Fr 25B.jpg|3Fr (B)
</gallery>
==Tavannes (BE)==
[[w:Tavannes|Tavannes]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Jura bernois (administrative district)|Jura bernois administrative district]] in the [[w:Cantons of Switzerland|canton]] of [[w:Bern (canton)|Bern]]. 31 different tax stamps were issued.
[[File:CHE Tavannes COA.svg|thumb|right|100px]]
<gallery>
Switzerland Tavannes revenue 10c 1.jpg|10c
Switzerland Tavannes revenue 20c 2a.jpg|20c (a)
Switzerland Tavannes revenue 50c 3.jpg|50c
Switzerland Tavannes revenue 5Fr 14.jpg|5Fr
Switzerland Tavannes revenue 10c 19.jpg|1940 - 20c
Switzerland Tavannes revenue 30c 21.jpg|1940 - 20c
</gallery>
==Wädenswil (ZH)==
[[w:Wädenswil|Wädenswil]] is a [[w:Municipalities of Switzerland|municipality]] in the [[w:Horgen (district)|district of Horgen]] in the [[w:Cantons of Switzerland|canton]] of [[w:Zürich (canton)|Zürich]]. 53 different tax stamps were issued between 1887 and 1948.
[[File:Waedenswil-blazon.svg|thumb|right|100px]]
<gallery>
Switzerland Wädenswil 1900 revenue 5c 8.jpg|1900 - 5c
Switzerland Wädenswil 1900 revenue 10c 9.jpg|1900 - 10c
Switzerland Wädenswil 1900 revenue 15c 10 block of four.jpg|1900 - 15c
Switzerland Wädenswil 1900 revenue 30c 12 block of four.jpg|1900 - 30c
Switzerland Wädenswil 1900 revenue 35c 13.jpg|1900 - 35c
Switzerland Wädenswil 1900 revenue 60c 15.jpg|1900 - 60c
Switzerland Wädenswil 1900 revenue 75c 18.jpg|1900 - 75c
</gallery>
=References=
{{reflist}}
{{BookCat}}
nywph1igtz3urs34jggk062jg2lhut7
Minecraft resource gathering/Wood
0
424374
4640477
4321268
2026-06-16T22:01:43Z
~2026-35409-29
3607372
Told that mineshafts can be used to acquire wood
4640477
wikitext
text/x-wiki
==Introduction==
Wood is a very important resource in Minecraft, as it is usually the first useful item players gather when they start the game.
==Acquiring==
Wood is obtained by hitting the trunk of a tree, and this can, infamously, be done without any tools, however, using an axe is quicker and easier. This drops a log block, the most basic wood type. To get wood in a cave, you have to find a mineshaft.
==Variants==
Just as in real life, Wood in Minecraft comes in a number of varieties based on the kind of tree it is obtained from.
===Tree variants===
A tree is where you get wood from. There are 11 different types of trees.
#Oak (yellow with brown bark)
#Spruce (brown with dark brown bark)
#Birch (creme with white bark and black spots)
#Jungle (light orange with brown-green bark)
#Dark Oak (dark brown with brown bark)
#Acacia (orange with grey bark)
#Azalea (uses oak logs)
#Mangrove (red with brown-red bark)
#Cherry (pink with black bark)
Two of which are found in the Nether and are inflammable:
#Warped Fungus (magenta with red bark)
#Crimson Fungus (cyan with blue bark)
Nine bamboo can also be crafted to obtain a wood-like block.
===Craftable variants===
You can craft a special kind of log called '''Wood'''. This log has the log texture on all six sides, making it great for landscaping and decoration.
Both log blocks and "wood" can be '''stripped''' by holding an axe and pressing the use button when looking at one.
Four planks can be crafted from both of these types. Planks are used in the majority of crafting recipes and can be crafted into stairs, slabs, doors, trapdoors, fences, signs, boats and more.
Two planks can be crafted to sticks.
==Use==
Wood has very varied uses, being one of the most used crafting ingredients.
===Building===
Wood can be used for building. It looks good and can be crafted into variant blocks such as stairs and slabs to aid with making complex shapes, and there are multiple variants which can be mixed to change up the palette. However, overworld wood is flammable, so it is not recommended for buildings near fire or lava. Additionally, roofs should be made of something else to prevent lightning from burning your house, or a lightning rod can be used to divert it somewhere else.
===Fuel===
Wood makes good early-game furnace fuel. However, it is not very efficient and has more important uses, so it is recommended to replace it with coal or lava when you get access to those.
'''Tip:''' craft wood into planks, then slabs to smelt eight times the items with the same amount of logs required.
{{BookCat}}
6w48i9jxvlffxxj5u3atg4jucku51jp
Scratch/Block Reference Guide
0
440760
4640461
4466194
2026-06-16T20:53:57Z
Carlossn77716
3607355
/* */
4640461
wikitext
text/x-wiki
{| class="wikitable"
|+Table of Blocks
!Block picture
!Name
!Description
!Category
!Examples
|-
|[[File:Move10steps.png|149x149px]]
|move () steps
|Moves a sprite forward a specified amount of "steps" in the direction it is facing.
|Motion
|move (5) steps
move (7) steps
move (2) steps
|-
|[[File:Turnright15degrees.png|186x186px]]
|turn right () degrees
|Rotates the sprite clockwise a set amount of degrees.
|Motion
|turn right (20) degrees
turn right (3) degrees
turn right (7) degrees
|-
|[[File:Turnleft15degrees.png|186x186px]]
|turn left () degrees
|Rotates the sprite counterclockwise a set amount of degrees.
|Motion
|turn left (30) degrees
turn left (12) degrees
turn left (36) degrees
|-
|[[File:Goto (randomposition).png|200x200px]]
|go to ()
|Moves the sprite to the selected location. The location can be a random position, the mouse-pointer, or any sprite.
|Motion
|go to (mouse-pointer)
go to (Ground)
go to (Arrow)
|-
|[[File:Gotox-10y-0.png|188x188px]]
|go to x: () y: ()
|Jumps the sprite to the specified x and y coordinates.
|Motion
|go to x: (30) y: (50)
go to x: (0) y: (0)
go to x: (100) y: (48)
|-
|[[File:Glide(1)secsto(randomposition).png|300x300px]]
|glide () secs to ()
|Glides the sprite to the specified position in the specified amount of time. The location can be a random position, the mouse-pointer, or any sprite.
|Motion
|glide (2) secs to (mouse-pointer)
glide (0.5) secs to (Grass)
glide (5) secs to (random position)
|-
|[[File:Glide(1)sectstox-(0)y-(0).png|267x267px]]
|glide () secs to x: () y: ()
|Glides the sprite to the specified x and y coordinates in the specified amount of time.
|Motion
|glide (2) secs to x: (-29) y: (23)
glide (10) secs to x: (9) y: (9)
glide (0.5) secs to x: (16) y: (-100)
|-
|[[File:Pointindirection(90).png|180x180px]]
|point in direction ()
|Points the sprite in the specified direction.
|Motion
|point in direction (180)
point in direction (67)
point in direction (-90)
|-
|[[File:Pointtowards(mouse-pointer).png|256x256px]]
|point towards ()
|Points the sprite towards the selected location. The location can be the mouse-pointer or any sprite.
|Motion
|point towards (cloud)
point towards (title text)
point towards (mouse-pointer)
|-
|[[File:Changexby(10).png|160x160px]]
|change x by ()
|Changes the sprite's x coordinate by the specified amount. A positive change will move the sprite to the right while a negative change will move the sprite to the left.
|Motion
|change x by (-30)
change x by (60)
change x by (32)
|-
|[[File:Set x to (30).png|121x121px]]
|set x to ()
|Sets the sprite's x coordinate to the specified value.
|Motion
|set x to (180)
set x to (-90)
set x to (100)
|-
|[[File:Change y by (10).png|160x160px]]
|change y by ()
|Changes the sprite's y coordinate by the specified amount. A positive change will move the sprite up while a negative change will move the sprite down.
|Motion
|change y by (20)
change y by (-100)
change y by (25)
|-
|[[File:Set y to (-50).png|139x139px]]
|set y to ()
|Sets the sprite's y coordinate to the specified value.
|Motion
|set y to (34)
set y to (-68)
set y to (122)
|-
|[[File:If on edge, bounce.png|165x165px]]
|if on edge, bounce
|Checks if the sprite is on the edge of the stage. If it is, the sprite is "bounced" back into the stage to prevent it from going off the screen. If left-right rotation is enabled (see below block), the sprite will flip around to the other direction when it bounces. If all around rotation is enabled, the sprite will flip upside down and flip to the other direction when it bounces.
|Motion
|forever {
if on edge, bounce
}
if (x position < -200) {
if on edge, bounce
}
|-
|[[File:Set rotation style (left-right).png|245x245px]]
|set rotation style []
|Changes the rotation style of the sprite. The style can be left-right (the sprite can only face the left or right), don't rotate (the sprite is not able to rotate), or all around (the sprite can rotate to any direction).
|Motion
|forever {
set rotation style [all around]
}
|-
|[[File:16mod7.png|187x187px]]
|() mod ()
|Returns the remainder (modulo) after the first number is divided by the second.
|Operators
|(16) mod (7) = 2
(75) mod (34) = 69
(7) mod (2) = 1
(7) mod (3.3) = 0.3
(1) mod (0.3) = 0.1
|-
|[[File:AddDivisoreFattori.png|329x329px]]
|add () to []
|Adds the specified item to the specified list.
|Variables (Lists)
|add ("grapes") to [fruits]
: If 'fruits' was the list:
:: apples
:: cherries
: then 'fruits' would then be
:: apples
:: cherries
:: grapes
add ("16") to [squares]
: If 'squares' was the list:
:: 1
:: 4
:: 9
: then 'squares' would then be
:: 1
:: 4
:: 9
:: 16
|-
|[[File:Delete(5)ofcoords.png|203x203px]]
|delete () of []
|Removes the specified item from th specified list.
|Variables (Lists)
|delete (4) from [players]
: If 'players' was the list:
:: 1
:: 4
:: 8
:: 10
: then 'players' would then be
:: 1
:: 4
:: 8
delete (3) of [words]
: If 'words' was the list:
:: hide
:: jump
:: run
:: seek
: then 'words' would then be
:: hide
:: jump
:: seek
|}
{{BookCat}}
aehu75kg690ja4wpl84ntsmc6rx2szo
4640462
4640461
2026-06-16T20:55:49Z
Carlossn77716
3607355
/* */
4640462
wikitext
text/x-wiki
{{Delete}}{| class="wikitable"
|+Table of Blocks
!Block picture
!Name
!Description
!Category
!Examples
|-
|[[File:Move10steps.png|149x149px]]
|move () steps
|Moves a sprite forward a specified amount of "steps" in the direction it is facing.
|Motion
|move (5) steps
move (7) steps
move (2) steps
|-
|[[File:Turnright15degrees.png|186x186px]]
|turn right () degrees
|Rotates the sprite clockwise a set amount of degrees.
|Motion
|turn right (20) degrees
turn right (3) degrees
turn right (7) degrees
|-
|[[File:Turnleft15degrees.png|186x186px]]
|turn left () degrees
|Rotates the sprite counterclockwise a set amount of degrees.
|Motion
|turn left (30) degrees
turn left (12) degrees
turn left (36) degrees
|-
|[[File:Goto (randomposition).png|200x200px]]
|go to ()
|Moves the sprite to the selected location. The location can be a random position, the mouse-pointer, or any sprite.
|Motion
|go to (mouse-pointer)
go to (Ground)
go to (Arrow)
|-
|[[File:Gotox-10y-0.png|188x188px]]
|go to x: () y: ()
|Jumps the sprite to the specified x and y coordinates.
|Motion
|go to x: (30) y: (50)
go to x: (0) y: (0)
go to x: (100) y: (48)
|-
|[[File:Glide(1)secsto(randomposition).png|300x300px]]
|glide () secs to ()
|Glides the sprite to the specified position in the specified amount of time. The location can be a random position, the mouse-pointer, or any sprite.
|Motion
|glide (2) secs to (mouse-pointer)
glide (0.5) secs to (Grass)
glide (5) secs to (random position)
|-
|[[File:Glide(1)sectstox-(0)y-(0).png|267x267px]]
|glide () secs to x: () y: ()
|Glides the sprite to the specified x and y coordinates in the specified amount of time.
|Motion
|glide (2) secs to x: (-29) y: (23)
glide (10) secs to x: (9) y: (9)
glide (0.5) secs to x: (16) y: (-100)
|-
|[[File:Pointindirection(90).png|180x180px]]
|point in direction ()
|Points the sprite in the specified direction.
|Motion
|point in direction (180)
point in direction (67)
point in direction (-90)
|-
|[[File:Pointtowards(mouse-pointer).png|256x256px]]
|point towards ()
|Points the sprite towards the selected location. The location can be the mouse-pointer or any sprite.
|Motion
|point towards (cloud)
point towards (title text)
point towards (mouse-pointer)
|-
|[[File:Changexby(10).png|160x160px]]
|change x by ()
|Changes the sprite's x coordinate by the specified amount. A positive change will move the sprite to the right while a negative change will move the sprite to the left.
|Motion
|change x by (-30)
change x by (60)
change x by (32)
|-
|[[File:Set x to (30).png|121x121px]]
|set x to ()
|Sets the sprite's x coordinate to the specified value.
|Motion
|set x to (180)
set x to (-90)
set x to (100)
|-
|[[File:Change y by (10).png|160x160px]]
|change y by ()
|Changes the sprite's y coordinate by the specified amount. A positive change will move the sprite up while a negative change will move the sprite down.
|Motion
|change y by (20)
change y by (-100)
change y by (25)
|-
|[[File:Set y to (-50).png|139x139px]]
|set y to ()
|Sets the sprite's y coordinate to the specified value.
|Motion
|set y to (34)
set y to (-68)
set y to (122)
|-
|[[File:If on edge, bounce.png|165x165px]]
|if on edge, bounce
|Checks if the sprite is on the edge of the stage. If it is, the sprite is "bounced" back into the stage to prevent it from going off the screen. If left-right rotation is enabled (see below block), the sprite will flip around to the other direction when it bounces. If all around rotation is enabled, the sprite will flip upside down and flip to the other direction when it bounces.
|Motion
|forever {
if on edge, bounce
}
if (x position < -200) {
if on edge, bounce
}
|-
|[[File:Set rotation style (left-right).png|245x245px]]
|set rotation style []
|Changes the rotation style of the sprite. The style can be left-right (the sprite can only face the left or right), don't rotate (the sprite is not able to rotate), or all around (the sprite can rotate to any direction).
|Motion
|forever {
set rotation style [all around]
}
|-
|[[File:16mod7.png|187x187px]]
|() mod ()
|Returns the remainder (modulo) after the first number is divided by the second.
|Operators
|(16) mod (7) = 2
(75) mod (34) = 69
(7) mod (2) = 1
(7) mod (3.3) = 0.3
(1) mod (0.3) = 0.1
|-
|[[File:AddDivisoreFattori.png|329x329px]]
|add () to []
|Adds the specified item to the specified list.
|Variables (Lists)
|add ("grapes") to [fruits]
: If 'fruits' was the list:
:: apples
:: cherries
: then 'fruits' would then be
:: apples
:: cherries
:: grapes
add ("16") to [squares]
: If 'squares' was the list:
:: 1
:: 4
:: 9
: then 'squares' would then be
:: 1
:: 4
:: 9
:: 16
|-
|[[File:Delete(5)ofcoords.png|203x203px]]
|delete () of []
|Removes the specified item from th specified list.
|Variables (Lists)
|delete (4) from [players]
: If 'players' was the list:
:: 1
:: 4
:: 8
:: 10
: then 'players' would then be
:: 1
:: 4
:: 8
delete (3) of [words]
: If 'words' was the list:
:: hide
:: jump
:: run
:: seek
: then 'words' would then be
:: hide
:: jump
:: seek
|}
{{BookCat}}
3yy61yfawdb65u2n4euvgwuneeb1ytr
A-level Computing/AQA/Paper 1/Skeleton program/2025
0
469216
4640503
4611923
2026-06-17T09:03:53Z
~2026-35488-62
3607508
/* Mark distribution comparison */
4640503
wikitext
text/x-wiki
This is for the 2025 AQA A-level Computer Science Specification (7517).
This is where suggestions can be made about what some of the questions might be and how we can solve them.
'''Please be respectful and do not vandalise the page, as this may affect students' preparation for exams!'''
== Section C Predictions ==
The 2025 paper 1 will contain '''four''' questions worth 2 marks each.
'''Predictions:'''
# MaxNumber is used as a parameter in CheckValidNumber. there is no difference whether it is used or not, making it obsolete. maybe it will ask a question using about using Maxnumber since there is not yet a practical use for the variable.
==Mark distribution comparison==
Mark distribution for this year:
* The 2025 paper 1 contains 4 questions: a '''5''' mark, an '''8''' mark, a '''12''' mark, and a '''14''' mark question(s).
Mark distribution for previous years:
* The 2024 paper 1 contained 4 questions: a '''5''' mark, a '''6''' mark question, a '''14''' mark question and one '''14''' mark question(s).
* The 2023 paper 1 contained 4 questions: a '''5''' mark, a '''9''' mark, a '''10''' mark question, and a '''13''' mark question(s).
* The 2022 paper 1 contained 4 questions: a '''5''' mark, a '''9''' mark, an '''11''' mark, and a '''13''' mark question(s).
* The 2021 paper 1 contained 4 questions: a '''6''' mark, an '''8''' mark, a '''9''' mark, and a '''14''' mark question(s).
* The 2020 paper 1 contained 4 questions: a '''6''' mark, an '''8''' mark, an '''11''' mark and a '''12''' mark question(s).
* The 2019 paper 1 contained 4 questions: a '''5''' mark, an '''8''' mark, a '''9''' mark, and a '''13''' mark question(s).
* The 2018 paper 1 contained 5 questions: a '''2''' mark, a '''5''' mark, two '''9''' mark, and a '''12''' mark question(s).
* The 2017 paper 1 contained 5 questions: a '''5''' mark question, three '''6''' mark questions, and one '''2''' mark question.{{BookCat}}
Please note the marks above include the screen capture(s), so the likely marks for the coding will be '''2-3''' marks lower.
== Section D Predictions ==
Current questions are speculation by contributors to this page.
=== '''Fix the scoring bug whereby ''n'' targets cleared give you ''2n-1'' points instead of ''n'' points:''' ===
{{CPTAnswerTab|Python}}
Instead of a single score decrementation happening in every iteration of PlayGame, we want three, on failure of each of the three validation (valid expression, numbers allowed, evaluates to a target):
<br/>
<syntaxhighlight lang="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
else:
Score -= 1
else:
Score -= 1
else:
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
We also want to change the score incrementation in CheckIfUserInputEvaluationIsATarget, so each target gives us one point, not two:
<br/>
<syntaxhighlight lang="python" line="1" start="1">
def CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score):
UserInputEvaluation = EvaluateRPN(UserInputInRPN)
UserInputEvaluationIsATarget = False
if UserInputEvaluation != -1:
for Count in range(0, len(Targets)):
if Targets[Count] == UserInputEvaluation:
Score += 1
Targets[Count] = -1
UserInputEvaluationIsATarget = True
return UserInputEvaluationIsATarget, Score
</syntaxhighlight>
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|C#}}
In the function CheckIfUserInputEvaluationIsATarget, each score increment upon popping a target should be set to an increment of one instead of two. In addition, if a target has been popped, the score should be incremented by one an extra time - this is to negate the score decrement by one once the function ends (in the PlayGame procedure).
<br/>
<syntaxhighlight lang="C#" line="1" start="1">
static bool CheckIfUserInputEvaluationIsATarget(List<int> Targets, List<string> UserInputInRPN, ref int Score)
{
int UserInputEvaluation = EvaluateRPN(UserInputInRPN);
bool UserInputEvaluationIsATarget = false;
if (UserInputEvaluation != -1)
{
for (int Count = 0; Count < Targets.Count; Count++)
{
if (Targets[Count] == UserInputEvaluation)
{
Score += 1; // code modified
Targets[Count] = -1;
UserInputEvaluationIsATarget = true;
}
}
}
if (UserInputEvaluationIsATarget) // code modified
{
Score++; // code modified
}
return UserInputEvaluationIsATarget;
}
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Modify the program so that (1) the player can use each number more than once and (2) the game does not allow repeats within the 5 numbers given:''' ===
{{CPTAnswerTab|C#}}
C# - DM - Riddlesdown <br></br>
________________________________________________________________ <br></br>
In CheckNumbersUsedAreAllInNumbersAllowed you can remove the line Temp.Remove(Convert.ToInt32(Item)) around line 150 <br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
static bool CheckNumbersUsedAreAllInNumbersAllowed(List<int> NumbersAllowed, List<string> UserInputInRPN, int MaxNumber)
{
List<int> Temp = new List<int>();
foreach (int Item in NumbersAllowed)
{
Temp.Add(Item);
}
foreach (string Item in UserInputInRPN)
{
if (CheckValidNumber(Item, MaxNumber))
{
if (Temp.Contains(Convert.ToInt32(Item)))
{
// CHANGE START (line removed)
// CHANGE END
}
else
{
return false;
}
}
}
return true;
}
</syntaxhighlight>
C# KN - Riddlesdown <br></br>
________________________________________________________________<br></br>
In FillNumbers in the while (NumbersAllowed < 5) loop, you should add a ChosenNumber int variable and check it’s not already in the allowed numbers so there are no duplicates (near line 370):
<syntaxhighlight lang="csharp" line="1" start="1">
static List<int> FillNumbers(List<int> NumbersAllowed, bool TrainingGame, int MaxNumber)
{
if (TrainingGame)
{
return new List<int> { 2, 3, 2, 8, 512 };
}
else
{
while (NumbersAllowed.Count < 5)
{
// CHANGE START
int ChosenNumber = GetNumber(MaxNumber);
while (NumbersAllowed.Contains(ChosenNumber))
{
ChosenNumber = GetNumber(MaxNumber);
}
NumbersAllowed.Add(ChosenNumber);
// CHANGE END
}
return NumbersAllowed;
}
}
</syntaxhighlight>{{CPTAnswerTabEnd}}{{CPTAnswerTab|Python}}Edit <code>FillNumbers()</code> to add a selection (if) statement to ensure that the number returned from <code>GetNumber()</code> has not already been appended to the list <code>NumbersAllowed</code>.
<syntaxhighlight lang="python">
def FillNumbers(NumbersAllowed, TrainingGame, MaxNumber):
if TrainingGame:
return [2, 3, 2, 8, 512]
else:
while len(NumbersAllowed) < 5:
NewNumber = GetNumber(MaxNumber)
if NewNumber not in NumbersAllowed:
NumbersAllowed.append(NewNumber)
else: continue
return NumbersAllowed
</syntaxhighlight>
Edit <code>CheckNumbersUsedAreAllInNumbersAllowed()</code> to ensure that numbers that the user has inputted are not removed from the <code>Temp</code> list, allowing numbers to be re-used.
<syntaxhighlight lang="python">
def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
Temp = []
for Item in NumbersAllowed:
Temp.append(Item)
for Item in UserInputInRPN:
if CheckValidNumber(Item, MaxNumber):
if int(Item) in Temp:
continue
else:
return False
return True
</syntaxhighlight>{{CPTAnswerTabEnd}}
=== '''Modify the program so expressions with whitespace ( ) are accepted:''' ===
{{CPTAnswerTab|C#}}
If you put spaces between values the program doesn't recognise it as a valid input and hence you lose points even for correct solutions. To fix the issue, modify the PlayGame method as follows:
Modify this:
<syntaxhighlight lang="csharp" line="58">
UserInput = Console.ReadLine()
</syntaxhighlight>
To this:
<syntaxhighlight lang="csharp" line="58">
UserInput = Console.ReadLine().Replace(" ","");
</syntaxhighlight>
Note that this is unlikely to come up because of the simplicity of the solution, being resolvable in half a line of code.
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
Create a function to remove spaces from the input.
<syntaxhighlight lang ="python" line="1" start="1" highlight="8">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
UserInput = RemoveWhitespace(UserInput)
</syntaxhighlight>
<syntaxhighlight lang ="python" line="1" start="1" highlight="1,2">
def RemoveWhitespace(UserInputWithWhitespace):
return UserInputWithWhitespace.replace(" ","")
</syntaxhighlight>
<i>datb2</i>
<syntaxhighlight lang ="python" line="1" start="1">
#whitespace at the start and end of a string can be removed with:
UserInput.strip()
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Add exponentials (using ^ or similar):''' ===
{{CPTAnswerTab|C#}}
Riddlesdown - Unknown <br></br>
_________________________________________________________________________<br></br>
<syntaxhighlight lang="csharp" line="1">
static bool CheckIfUserInputValid(string UserInput)
{
// CHANGE START
return Regex.IsMatch(UserInput, @"^([0-9]+[\+\-\*\/\^])+[0-9]+$");
// CHANGE END
}
</syntaxhighlight>
{{CPTAnswer|}} In ConvertToRPN() add the ^ to the list of operators and give it the highest precedence
}}
<syntaxhighlight lang="csharp" line="1">
Riddlesdown - Unknown
static List<string> ConvertToRPN(string UserInput)
{
int Position = 0;
Dictionary<string, int> Precedence = new Dictionary<string, int>
{
// CHANGE START
{ "+", 2 }, { "-", 2 }, { "*", 4 }, { "/", 4 }, { "^", 5 }
// CHANGE END
};
List<string> Operators = new List<string>();
</syntaxhighlight>
In EvaluateRPN() add the check to see if the current user input contains the ^, and make it evaluate the exponential if it does<syntaxhighlight lang="csharp" line="1">
Riddlesdown - Unknown<br></br>
_________________________________________________________________________<br></br>
static int EvaluateRPN(List<string> UserInputInRPN)
{
List<string> S = new List<string>();
while (UserInputInRPN.Count > 0)
{
// CHANGE START
while (!"+-*/^".Contains(UserInputInRPN[0]))
// CHANGE END
{
S.Add(UserInputInRPN[0]);
UserInputInRPN.RemoveAt(0);
}
double Num2 = Convert.ToDouble(S[S.Count - 1]);
S.RemoveAt(S.Count - 1);
double Num1 = Convert.ToDouble(S[S.Count - 1]);
S.RemoveAt(S.Count - 1);
double Result = 0;
switch (UserInputInRPN[0])
{
case "+":
Result = Num1 + Num2;
break;
case "-":
Result = Num1 - Num2;
break;
case "*":
Result = Num1 * Num2;
break;
case "/":
Result = Num1 / Num2;
break;
// CHANGE START
case "^":
Result = Math.Pow(Num1, Num2);
break;
// CHANGE END
}
UserInputInRPN.RemoveAt(0);
S.Add(Convert.ToString(Result));
}
</syntaxhighlight>
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
<syntaxhighlight lang ="python" line="1" start="1">
def ConvertToRPN(UserInput):
Position = 0
Precedence = {"+": 2, "-": 2, "*": 4, "/": 4, "^": 5} # Add exponent value to dictionary
Operators = []
</syntaxhighlight>
<syntaxhighlight lang ="python" line="1" start="1">
def EvaluateRPN(UserInputInRPN):
S = []
while len(UserInputInRPN) > 0:
while UserInputInRPN[0] not in ["+", "-", "*", "/", "^"]: # Define ^ as a valid operator
S.append(UserInputInRPN[0])
UserInputInRPN.pop(0)
Num2 = float(S[-1])
S.pop()
Num1 = float(S[-1])
S.pop()
Result = 0.0
if UserInputInRPN[0] == "+":
Result = Num1 + Num2
elif UserInputInRPN[0] == "-":
Result = Num1 - Num2
elif UserInputInRPN[0] == "*":
Result = Num1 * Num2
elif UserInputInRPN[0] == "/":
Result = Num1 / Num2
elif UserInputInRPN[0] == "^":
Result = Num1 ** Num2
UserInputInRPN.pop(0)
S.append(str(Result))
if float(S[0]) - math.floor(float(S[0])) == 0.0:
return math.floor(float(S[0]))
else:
return -1
</syntaxhighlight>
<syntaxhighlight lang ="python" line="1" start="1">
def CheckIfUserInputValid(UserInput):
if re.search("^([0-9]+[\\+\\-\\*\\/\\^])+[0-9]+$", UserInput) is not None: # Add the operator here to make sure its recognized when the RPN is searched, otherwise it wouldn't be identified correctly.
return True
else:
return False
</syntaxhighlight>
<syntaxhighlight lang ="python" line="1" start="1">
def ConvertToRPN(UserInput): # Need to adjust for "^" right associativity
Position = 0
Precedence = {"+": 2, "-": 2, "*": 4, "/": 4, "^": 5}
Operators = []
Operand, Position = GetNumberFromUserInput(UserInput, Position)
UserInputInRPN = []
UserInputInRPN.append(str(Operand))
Operators.append(UserInput[Position - 1])
while Position < len(UserInput):
Operand, Position = GetNumberFromUserInput(UserInput, Position)
UserInputInRPN.append(str(Operand))
if Position < len(UserInput):
CurrentOperator = UserInput[Position - 1]
while len(Operators) > 0 and Precedence[Operators[-1]] > Precedence[CurrentOperator]:
UserInputInRPN.append(Operators[-1])
Operators.pop()
if len(Operators) > 0 and Precedence[Operators[-1]] == Precedence[CurrentOperator]:
if CurrentOperator != "^": # Just add this line, "^" does not care if it is next to an operator of same precedence
UserInputInRPN.append(Operators[-1])
Operators.pop()
Operators.append(CurrentOperator)
else:
while len(Operators) > 0:
UserInputInRPN.append(Operators[-1])
Operators.pop()
return UserInputInRPN
</syntaxhighlight>{{CPTAnswerTabEnd}}
=== '''Allow User to Add Brackets''' ===
{{CPTAnswerTab|C#}}
C# - AC - Coombe Wood <br></br>
________________________________________________________________<br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
while (Position < UserInput.Length)
{
char CurrentChar = UserInput[Position];
if (char.IsDigit(CurrentChar))
{
string Number = "";
while (Position < UserInput.Length && char.IsDigit(UserInput[Position]))
{
Number += UserInput[Position];
Position++;
}
UserInputInRPN.Add(Number);
}
else if (CurrentChar == '(')
{
Operators.Add("(");
Position++;
}
else if (CurrentChar == ')')
{
while (Operators.Count > 0 && Operators[Operators.Count - 1] != "(")
{
UserInputInRPN.Add(Operators[Operators.Count - 1]);
Operators.RemoveAt(Operators.Count - 1);
}
Operators.RemoveAt(Operators.Count - 1);
Position++;
}
else if ("+-*/^".Contains(CurrentChar))
{
string CurrentOperator = CurrentChar.ToString();
while (Operators.Count > 0 && Operators[Operators.Count - 1] != "(" && Precedence[Operators[Operators.Count - 1]] >= Precedence[CurrentOperator])
{
UserInputInRPN.Add(Operators[Operators.Count - 1]);
Operators.RemoveAt(Operators.Count - 1);
}
Operators.Add(CurrentOperator);
Position++;
}
}
</syntaxhighlight>{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
Python - ''evokekw''<br></br>
________________________________________________________________<br></br>
<syntaxhighlight lang="python" line="1" start="1">
from collections import deque
# New function ConvertToRPNWithBrackets
def ConvertToRPNWithBrackets(UserInput):
Precedence = {"+": 2, "-": 2, "*": 4, "/": 4, "^": 6}
Operators = []
Operands = []
i = 0
# Iterate through the expression
while i < len(UserInput):
Token = UserInput[i]
# If the token is a digit we check too see if it has mutltiple digits
if Token.isdigit():
Number, NewPos = GetNumberFromUserInput(UserInput, i)
# append the number to queue
Operands.append(str(Number))
if i == len(UserInput) - 1:
break
else:
i = NewPos - 1
continue
# If the token is an open bracket we push it to the stack
elif Token == "(":
Operators.append(Token)
# If the token is a closing bracket then
elif Token == ")":
# We pop off all the operators and enqueue them until we get to an opening bracket
while Operators and Operators[-1] != "(":
Operands.append(Operators.pop())
if Operators and Operators[-1] == "(":
# We pop the opening bracket
Operators.pop()
# If the token is an operator
elif Token in Precedence:
# If the precedence of the operator is less than the precedence of the operator on top of the stack we pop and enqueue
while Operators and Operators[-1] != "(" and Precedence[Token] < Precedence[Operators[-1]]:
Operands.append(Operators.pop())
Operators.append(Token)
i += 1
# Make sure to empty stack after all tokens have been computed
while Operators:
Operands.append(Operators.pop())
return list(Operands)
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Allow User to Add Brackets (Alternative Solution)''' ===
{{CPTAnswerTab|C#}}
C# - Conor Carton<br></br>
________________________________________________________________<br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
//new method ConvertToRPNWithBrackets
static List<string> ConvertToRPNWithBrackets(string UserInput)
{
int Position = 0;
Dictionary<string, int> Precedence = new Dictionary<string, int>
{
{ "+", 2 }, { "-", 2 }, { "*", 4 }, { "/", 4 }
};
List<string> Operators = new List<string>();
List<string> UserInputInRPN = new List<string>();
while (Position < UserInput.Length)
{
//handle numbers
if (char.IsDigit(UserInput[Position]))
{
string number = "";
while (Position < UserInput.Length && char.IsDigit(UserInput[Position]))
{
number += Convert.ToString(UserInput[Position]);
Position++;
}
UserInputInRPN.Add(number);
}
//handle open bracket
else if (UserInput[Position] == '(')
{
Operators.Add("(");
Position++;
}
//handle close bracket
else if (UserInput[Position] == ')')
{
while (Operators[Operators.Count - 1] != "(" && Operators.Count > 0)
{
UserInputInRPN.Add(Operators[Operators.Count - 1]);
Operators.RemoveAt(Operators.Count - 1);
}
Operators.RemoveAt(Operators.Count - 1);
Position++;
}
//handle operators
else if ("+/*-".Contains(UserInput[Position]) )
{
string CurrentOperator = Convert.ToString(UserInput[Position]);
while (Operators.Count > 0 && Operators[Operators.Count - 1] != "(" && Precedence[Operators[Operators.Count - 1]] >= Precedence[CurrentOperator])
{
UserInputInRPN.Add(Operators[Operators.Count - 1]);
Operators.RemoveAt(Operators.Count - 1);
}
Operators.Add(CurrentOperator);
Position++;
}
}
//add remaining items to the queue
while (Operators.Count > 0)
{
UserInputInRPN.Add(Operators[Operators.Count - 1]);
Operators.RemoveAt(Operators.Count - 1);
}
return UserInputInRPN;
}
//change to PlayGame()
UserInputInRPN = ConvertToRPNWithBrackets(UserInput);
//change in RemoveNumbersUsed()
List<string> UserInputInRPN = ConvertToRPNWithBrackets(UserInput);
//change to CheckIfUserInputValid()
static bool CheckIfUserInputValid(string UserInput)
{
return Regex.IsMatch(UserInput, @"^(\(*[0-9]+\)*[\+\-\*\/])+\(*[0-9]+\)*$");
}
</syntaxhighlight>{{CPTAnswerTabEnd}}
{{CPTAnswerTab|VB}}
VB - Daniel Dovey<br></br>
________________________________________________________________<br></br>
<syntaxhighlight lang= "vbnet" line="1" start="1">
' new method ConvertToRPNWithBrackets
Function ConvertToRPNWithBrackets(UserInput As String) As List(Of String)
Dim Position As Integer = 0
Dim Precedence As New Dictionary(Of String, Integer) From {{"+", 2}, {"-", 2}, {"*", 4}, {"/", 4}}
Dim Operators As New List(Of String)
Dim UserInputInRPN As New List(Of String)
While Position < UserInput.Length
If Char.IsDigit(UserInput(Position)) Then
Dim Number As String = ""
While Position < UserInput.Length AndAlso Char.IsDigit(UserInput(Position))
Number &= UserInput(Position)
Position += 1
End While
UserInputInRPN.Add(Number)
ElseIf UserInput(Position) = "(" Then
Operators.Add("(")
Position += 1
ElseIf UserInput(Position) = ")" Then
While Operators.Count > 0 AndAlso Operators(Operators.Count - 1) <> "("
UserInputInRPN.Add(Operators(Operators.Count - 1))
Operators.RemoveAt(Operators.Count - 1)
End While
Position += 1
Operators.RemoveAt(Operators.Count - 1)
ElseIf "+-*/".Contains(UserInput(Position)) Then
Dim CurrentOperator As String = UserInput(Position)
While Operators.Count > 0 AndAlso Operators(Operators.Count - 1) <> "(" AndAlso
Precedence(Operators(Operators.Count - 1)) >= Precedence(CurrentOperator)
UserInputInRPN.Add(Operators(Operators.Count - 1))
Operators.RemoveAt(Operators.Count - 1)
End While
Operators.Add(CurrentOperator)
Position += 1
End If
End While
While Operators.Count > 0
UserInputInRPN.Add(Operators(Operators.Count - 1))
Operators.RemoveAt(Operators.Count - 1)
End While
Return UserInputInRPN
End Function
' change to PlayGame()
UserInputInRPN = ConvertToRPNWithBrackets(UserInput);
' change in RemoveNumbersUsed()
Dim UserInputInRPN As List(Of String) = ConvertToRPNWithBrackets(UserInput)
' change to CheckIfUserInputValid()
Function CheckIfUserInputValid(UserInput As String) As Boolean
Return Regex.IsMatch(UserInput, "^(\(*[0-9]+\)*[\+\-\*\/])+\(*[0-9]+\)*$")
End Function
</syntaxhighlight>{{CPTAnswerTabEnd}}
=== '''Modify the program to accept input in Postfix (Reverse Polish Notation) instead of Infix''' ===
{{CPTAnswerTab|Python}}
First, ask the user to input a comma-separated list. Instead of <code>ConvertToRPN()</code>, we call a new <code>SplitIntoRPN()</code> function which splits the user's input into a list object.
<syntaxhighlight lang ="python" line="1" start="1" highlight="6-11">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression in RPN separated by commas e.g. 1,1,+ : ")
print()
UserInputInRPN, IsValidRPN = SplitIntoRPN(UserInput)
if not IsValidRPN:
print("Invalid RPN input")
else:
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
This function splits the user's input string, e.g. <code>"10,5,/"</code> into a list object, e.g. <code>["10", "5", "/"]</code>. It also checks that at least 3 items have been entered, and also that the first character is a digit. The function returns the list and a boolean indicating whether or not the input looks valid.
<syntaxhighlight lang ="python" line="1" start="1" highlight="1-6">
def SplitIntoRPN(UserInput):
#Extra RPN validation could be added here
if len(UserInput) < 3 or not UserInput[0].isdigit():
return [], False
Result = UserInput.split(",")
return Result, True
</syntaxhighlight>
Also update <code>RemoveNumbersUsed()</code> to replace the <code>ConvertToRPN()</code> function with the new <code>SplitIntoRPN()</code> function.
<syntaxhighlight lang ="python" line="1" start="1" highlight="2">
def RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed):
UserInputInRPN, IsValidRPN = SplitIntoRPN(UserInput)
for Item in UserInputInRPN:
if CheckValidNumber(Item, MaxNumber):
if int(Item) in NumbersAllowed:
NumbersAllowed.remove(int(Item))
return NumbersAllowed
</syntaxhighlight>
It may help to display the evaluated user input:
<syntaxhighlight lang ="python" line="1" start="1" highlight="3">
def CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score):
UserInputEvaluation = EvaluateRPN(UserInputInRPN)
print("Your input evaluated to: " + str(UserInputEvaluation))
UserInputEvaluationIsATarget = False
if UserInputEvaluation != -1:
for Count in range(0, len(Targets)):
if Targets[Count] == UserInputEvaluation:
Score += 2
Targets[Count] = -1
UserInputEvaluationIsATarget = True
return UserInputEvaluationIsATarget, Score
</syntaxhighlight>
Typical game output:
<syntaxhighlight>
Enter y to play the training game, anything else to play a random game:
| | | | | |3|9|12|3|36|7|26|42|3|17|12|29|30|10|44|
Numbers available: 8 6 10 7 3
Current score: 0
Enter an expression as RPN separated by commas e.g. 1,1,+ : 10,7,-
Your input evaluated to: 3
| | | | | |9|12| |36|7|26|42| |17|12|29|30|10|44|48|
Numbers available: 8 6 3 6 7
Current score: 5
Enter an expression as RPN separated by commas e.g. 1,1,+ :
</syntaxhighlight>
<i>datb2</i>
{{CPTAnswerTabEnd}}
=== '''Allow the program to not stop after 'Game Over!' with no way for the user to exit.''' ===
{{CPTAnswerTab|Python}}
<syntaxhighlight lang ="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression (+, -, *, /, ^) : ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
=== '''Practice game - only generates 119 as new targets''' ===
{{CPTAnswerTab|Python}}
The way that it is currently appending new targets to the list is just by re-appending the value on the end of the original list
<syntaxhighlight lang = "python" line="1" start = "1">
Targets = [-1, -1, -1, -1, -1, 23, 9, 140, 82, 121, 34, 45, 68, 75, 34, 23, 119, 43, 23, 119]
</syntaxhighlight>
So by adding the PredefinedTargets list to the program, it will randomly pick one of those targets, rather than re-appending 119.
<syntaxhighlight lang ="python" line="1" start="1">
def UpdateTargets(Targets, TrainingGame, MaxTarget):
for Count in range (0, len(Targets) - 1):
Targets[Count] = Targets[Count + 1]
Targets.pop()
if TrainingGame:
PredefinedTargets = [23, 9, 140, 82, 121, 34, 45, 68, 75, 34, 23, 119, 43] # Updated list that is randomly picked from by using the random.choice function from the random library
Targets.append(random.choice(PredefinedTargets))
else:
Targets.append(GetTarget(MaxTarget))
return Targets
</syntaxhighlight>{{CPTAnswerTabEnd}}{{CPTAnswerTab|C#}}Coombe Wood - AA
if (Targets[0] != -1) // If any target is still active, the game continues
{
Console.WriteLine("Do you want to play again or continue? If yes input 'y'");
string PlayAgain = Console.ReadLine();
if (PlayAgain == "y")
{
Console.WriteLine("To continue press 'c' or to play again press any other key");
string Continue = Console.ReadLine();
if (Continue == "c")
{
GameOver = false;
}
else
{
Restart();
static void Restart()
{
// Get the path to the current executable
string exePath = Process.GetCurrentProcess().MainModule.FileName;
// Start a new instance of the application
Process.Start(exePath);
// Exit the current instance
Environment.Exit(0);
}
}
}
else
{
Console.WriteLine("Do you want to stop playing game? If yes type 'y'.");
string Exit = Console.ReadLine();
if (Exit == "y")
{
GameOver = true;
}
}
}{{CPTAnswerTabEnd}}
=== '''Allow the user to quit the game''' ===
{{CPTAnswerTab|1=C#}}
Modify the program to allow inputs which exit the program.
Add the line <code>if (UserInput.ToLower() == "exit") { Environment.Exit(0); }</code> to the <code>PlayGame</code> method as shown:
<syntaxhighlight lang ="csharp" line="1" start="1">
if (UserInput.ToLower() == "exit") { Environment.Exit(0); }
if (CheckIfUserInputValid(UserInput))
{
UserInputInRPN = ConvertToRPN(UserInput);
if (CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber))
{
if (CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, ref Score))
{
RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed);
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber);
}
}
}
</syntaxhighlight>
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
If the user types <code>q</code> during the game it will end. The <code>return</code> statement causes the PlayGame function to exit.
<syntaxhighlight lang="python" line="1" start="1" highlight="4,5,10-13">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
print("Enter q to quit")
print()
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if UserInput == "q":
print("Quitting...")
DisplayScore(Score)
return
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
<i>datb2</i>
{{CPTAnswerTabEnd}}
=== '''Add the ability to clear any target''' ===
{{CPTAnswerTab|C#}}
C# - AC - Coombe Wood <br></br>
________________________________________________________________ <br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
Console.WriteLine("Do you want to remove a target?");
UserInput1 = Console.ReadLine().ToUpper();
if (UserInput1 == "YES")
{
if (Score >= 10)
{
Console.WriteLine("What number?");
UserInput3 = Console.Read();
Score = Score - 10;
}
else
{
Console.WriteLine("You do not have enough points");
Console.ReadKey();
}
}
else if (UserInput1 == "NO")
{
Console.WriteLine("You selected NO");
}
Score--;
if (Targets[0] != -1)
{
GameOver = true;
}
else
{
UpdateTargets(Targets, TrainingGame, MaxTarget);
</syntaxhighlight>
C# - KH- Riddlesdown <br></br>
_____________________________________________________________________________<br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
static bool RemoveTarget(List<int> Targets, string Userinput)
{
bool removed = false;
int targetremove = int.Parse(Userinput);
for (int Count = 0; Count < Targets.Count - 1; Count++)
{
if(targetremove == Targets[Count])
{
removed = true;
Targets.RemoveAt(Count);
}
}
if (!removed)
{
Console.WriteLine("invalid target");
return (false);
}
return (true);
}
while (!GameOver)
{
DisplayState(Targets, NumbersAllowed, Score);
Console.Write("Enter an expression: ");
UserInput = Console.ReadLine();
Console.WriteLine(UserInput);
Console.ReadKey();
Console.WriteLine();
if(UserInput.ToUpper() == "R")
{
Console.WriteLine("Enter the target");
UserInput = Console.ReadLine();
if(RemoveTarget(Targets, UserInput))
{
Score -= 5;
}
}
else
{
if (CheckIfUserInputValid(UserInput))
{
UserInputInRPN = ConvertToRPN(UserInput);
if (CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber))
{
if (CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, ref Score))
{
RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed);
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber);
}
}
}
Score--;
}
if (Targets[0] != -1)
{
GameOver = true;
}
else
{
UpdateTargets(Targets, TrainingGame, MaxTarget);
}
}
Console.WriteLine("Game over!");
DisplayScore(Score);
}
</syntaxhighlight>
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
Call a new <code>ClearTarget()</code> function when the player enters <code>c</code>.
<syntaxhighlight lang ="python" line="1" start="1" highlight="4,5,9,10,11">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
print("Enter c to clear any target (costs 10 points)")
print()
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
if UserInput.lower().strip() == "c":
Targets, Score = ClearTarget(Targets, Score)
continue
print()
</syntaxhighlight>
The new function:
<syntaxhighlight lang ="python" line="1" start="1" highlight="1-16">
def ClearTarget(Targets, Score):
InputTargetString = input("Enter target to clear: ")
try:
InputTarget = int(InputTargetString)
except:
print(InputTargetString + " is not a number")
return Targets, Score
if (InputTarget not in Targets):
print(InputTargetString + " is not a target")
return Targets, Score
#Replace the first matching element with -1
Targets[Targets.index(InputTarget)] = -1
Score -= 10
print(InputTargetString + " has been cleared")
print()
return Targets, Score
</syntaxhighlight>
Typical game output:
<syntaxhighlight>
Enter y to play the training game, anything else to play a random game:
Enter c to clear any target (costs 10 points)
| | | | | |19|29|38|39|35|34|16|7|19|16|40|37|10|7|49|
Numbers available: 8 3 8 8 10
Current score: 0
Enter an expression: c
Enter target to clear: 19
19 has been cleared
| | | | | | |29|38|39|35|34|16|7|19|16|40|37|10|7|49|
Numbers available: 8 3 8 8 10
Current score: -10
Enter an expression:
</syntaxhighlight>
<i>datb2</i>
{{CPTAnswerTabEnd}}
=== '''Allowed numbers don’t have any duplicate numbers, and can be used multiple times''' ===
{{CPTAnswerTab|C#}}
C# - KH- Riddlesdown <br></br>
________________________________________________________________<br></br>
In CheckNumbersUsedAreAllInNumbersAllowed you can remove the line Temp.Remove(Convert.ToInt32(Item)) around line 150
<syntaxhighlight lang="csharp" line="1" start="1">
static bool CheckNumbersUsedAreAllInNumbersAllowed(List<int> NumbersAllowed, List<string> UserInputInRPN, int MaxNumber)
{
List<int> Temp = new List<int>();
foreach (int Item in NumbersAllowed)
{
Temp.Add(Item);
}
foreach (string Item in UserInputInRPN)
{
if (CheckValidNumber(Item, MaxNumber))
{
if (Temp.Contains(Convert.ToInt32(Item)))
{
// CHANGE START (line removed)
// CHANGE END
}
else
{
return false;
}
}
}
return true;
}
</syntaxhighlight>
In FillNumbers in the while (NumbersAllowed < 5) loop, you should add a ChosenNumber int variable and check it’s not already in the allowed numbers so there are no duplicates (near line 370):
<syntaxhighlight lang="csharp" line="1" start="1">
static List<int> FillNumbers(List<int> NumbersAllowed, bool TrainingGame, int MaxNumber)
{
if (TrainingGame)
{
return new List<int> { 2, 3, 2, 8, 512 };
}
else
{
while (NumbersAllowed.Count < 5)
{
// CHANGE START
int ChosenNumber = GetNumber(MaxNumber);
while (NumbersAllowed.Contains(ChosenNumber))
{
ChosenNumber = GetNumber(MaxNumber);
}
NumbersAllowed.Add(ChosenNumber);
// CHANGE END
}
return NumbersAllowed;
}
}
</syntaxhighlight> {{CPTAnswerTabEnd}}
=== '''Update program so expressions with whitespace are validated''' ===
{{CPTAnswerTab|C#}}
C# - KH- Riddlesdown <br></br>
________________________________________________________________ <br></br>
At the moment if you put spaces between your numbers or operators it doesn't work so you will have to fix that
Put RemoveSpaces() under user input.
<syntaxhighlight lang="csharp" line="1" start="1">
static string RemoveSpaces(string UserInput)
{
char[] temp = new char[UserInput.Length];
string bufferstring = "";
bool isSpaces = true;
for (int i = 0; i < UserInput.Length; i++)
{
temp[i] = UserInput[i];
}
while (isSpaces)
{
int spaceCounter = 0;
for (int i = 0; i < temp.Length-1 ; i++)
{
if(temp[i]==' ')
{
spaceCounter++;
temp = shiftChars(temp, i);
}
}
if (spaceCounter == 0)
{
isSpaces = false;
}
else
{
temp[(temp.Length - 1)] = '¬';
}
}
for (int i = 0; i < temp.Length; i++)
{
if(temp[i] != ' ' && temp[i] != '¬')
{
bufferstring += temp[i];
}
}
return (bufferstring);
}
static char[] shiftChars(char[] Input, int startInt)
{
for (int i = startInt; i < Input.Length; i++)
{
if(i != Input.Length - 1)
{
Input[i] = Input[i + 1];
}
else
{
Input[i] = ' ';
}
}
return (Input);
}
</syntaxhighlight>
A shorter way
<syntaxhighlight lang="csharp" line="1" start="1">
static string RemoveSpaces2(string UserInput)
{
string newString = "";
foreach (char c in UserInput)
{
if (c != ' ')
{
newString += c;
}
}
return newString;
}
</syntaxhighlight>
Also don’t forget to add a call to it around line 58
<syntaxhighlight lang="csharp" line="1" start="1">
static void PlayGame(List<int> Targets, List<int> NumbersAllowed, bool TrainingGame, int MaxTarget, int MaxNumber)
{
...
while (!GameOver)
{
DisplayState(Targets, NumbersAllowed, Score);
Console.Write("Enter an expression: ");
UserInput = Console.ReadLine();
// Add remove spaces func here
UserInput = RemoveSpaces2(UserInput);
Console.WriteLine();
...
</syntaxhighlight>
<br>
PS<br>__________________________________________________________________<br></br>
Alternative shorter solution:
<syntaxhighlight lang="csharp" line="1">
static bool CheckIfUserInputValid(string UserInput)
{
string[] S = UserInput.Split(' ');
string UserInputWithoutSpaces = "";
foreach(string s in S)
{
UserInputWithoutSpaces += s;
}
return Regex.IsMatch(UserInputWithoutSpaces, @"^([0-9]+[\+\-\*\/])+[0-9]+$");
}
</syntaxhighlight>{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
Python - JR - Comberton <br></br>
________________________________________________________________ <br></br>
To remove all instances of a substring from a string, we can pass the string through a filter() function. The filter function takes 2 inputs - the first is a function, and the second is the iterable to operate on. An iterable is just any object that can return its elements one-at-a-time; it's just a fancy way of saying any object that can be put into a for loop. For example, a range object (as in, for i in range()) is an iterable! It returns each number from its start value to its stop value, one at a time, on each iteration of the for loop. Lists, strings, and dictionaries (including just the keys or values) are good examples of iterables.
All elements in the iterable are passed into the function individually - if the function returns false, then that element is removed from the iterable. Else, the element is maintained in the iterable (just as you'd expect a filter in real-life to operate).
<syntaxhighlight lang="python" line="1"> filter(lambda x: x != ' ', input("Enter an expression: ") </syntaxhighlight>
If we were to expand this out, this code is a more concise way of writing the following:
<syntaxhighlight lang="python" line="1">
UserInput = input("Enter an expression: ")
UserInputWithSpacesRemoved = ""
for char in UserInput:
if char != ' ':
UserInputWithSpacesRemoved += char
UserInput = UserInputWithSpacesRemoved
</syntaxhighlight>
Both do the same job, but the former is much easier to read, understand, and modify if needed. Plus, having temporary variables like UserInputWithSpacesRemoved should be a warning sign that there's probably an easier way to do the thing you're doing.
From here, all that needs to be done is to convert the filter object that's returned back into a string.
Nicely, this filter object is an iterable, so this can be done by joining the elements together using "".join()
<syntaxhighlight lang="python" line="1"> "".join(filter(lambda x: x != ' ', input("Enter an expression: ")))) </syntaxhighlight>
This pattern of using a higher-order function like filter(), map(), or reduce(), then casting to a string using "".join(), is a good one to learn.
Here is the resultant modification in context:
<syntaxhighlight lang="python" line="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
# Just remove the whitespaces here, so that input string collapses to just expression
UserInput = "".join(filter(lambda x: x != ' ', input("Enter an expression: "))) #
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>{{CPTAnswerTabEnd}}
=== '''Implement a hard mode where the same target can't appear twice''' ===
{{CPTAnswerTab|C#}}
C# - Riddlesdown <br></br>
________________________________________________________________ <br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
static void UpdateTargets(List<int> Targets, bool TrainingGame, int MaxTarget)
{
for (int Count = 0; Count < Targets.Count - 1; Count++)
{
Targets[Count] = Targets[Count + 1];
}
Targets.RemoveAt(Targets.Count - 1);
if (TrainingGame)
{
Targets.Add(Targets[Targets.Count - 1]);
}
else
{
// CHANGE START
int NewTarget = GetTarget(MaxTarget);
while (Targets.Contains(NewTarget))
{
NewTarget = GetTarget(MaxTarget);
}
Targets.Add(NewTarget);
// CHANGE END
}
}
</syntaxhighlight>
Also, at line 355 update CreateTargets:
<syntaxhighlight lang="csharp" line="1" start="1">
static List<int> CreateTargets(int SizeOfTargets, int MaxTarget)
{
List<int> Targets = new List<int>();
for (int Count = 1; Count <= 5; Count++)
{
Targets.Add(-1);
}
for (int Count = 1; Count <= SizeOfTargets - 5; Count++)
{
// CHANGE START
int NewTarget = GetTarget(MaxTarget);
while (Targets.Contains(NewTarget))
{
NewTarget = GetTarget(MaxTarget);
}
Targets.Add(NewTarget);
// CHANGE END
}
return Targets;
}
</syntaxhighlight> {{CPTAnswerTabEnd}}{{CPTAnswerTab|Python}}Python - JR - Comberton <br></br>
________________________________________________________________ <br></br>
There are lots of ways to do this, but the key idea is to ask the user if they want to play in hard mode, and then update GetTarget to accommodate hard mode.
The modification to Main is pretty self explanatory.
<syntaxhighlight lang="python" line="1" start="1">
def Main():
NumbersAllowed = []
Targets = []
MaxNumberOfTargets = 20
MaxTarget = 0
MaxNumber = 0
TrainingGame = False
Choice = input("Enter y to play the training game, anything else to play a random game: ").lower()
HardModeChoice = input("Enter y to play on hard mode: ").lower()
HardMode = True if HardModeChoice == 'y' else False
print()
if Choice == "y":
.....
</syntaxhighlight>
The GetTarget uses a guard clause at the start to return early if the user hasn't selected hard mode. This makes the module a bit easier to read, as both cases are clearly separated. A good rule of thumb is to deal with the edge cases first, so you can focus on the general case uninterrupted.
<syntaxhighlight lang="python" line="1" start="1">
def GetTarget(Targets, MaxTarget, HardMode):
if not HardMode:
return random.randint(1, MaxTarget)
while True:
newTarget = random.randint(1, MaxTarget)
if newTarget not in Targets:
return newTarget
</syntaxhighlight>
Only other thing that needs to be done here is to feed HardMode into the GetTarget subroutine on both UpdateTargets and CreateTargets - which is just a case of passing it in as a parameter to subroutines until you stop getting error messages.{{CPTAnswerTabEnd}}
=== '''Once a target is cleared, prevent it from being generated again''' ===
{{CPTAnswerTab|C#}}
C# - Riddlesdown <br></br>
________________________________________________________________ <br></br>
<syntaxhighlight lang="csharp" line="1" start="1">
internal class Program
{
static Random RGen = new Random();
// CHANGE START
static List<int> TargetsUsed = new List<int>();
// CHANGE END
...
</syntaxhighlight>
Next create these new functions at the bottom:
<syntaxhighlight lang="csharp" line="1" start="1">
// CHANGE START
static bool CheckIfEveryPossibleTargetHasBeenUsed(int MaxNumber)
{
if (TargetsUsed.Count >= MaxNumber)
{
return true;
}
else
{
return false;
}
}
static bool CheckAllTargetsCleared(List<int> Targets)
{
bool allCleared = true;
foreach (int i in Targets)
{
if (i != -1)
{
allCleared = false;
}
}
return allCleared;
}
// CHANGE END
</syntaxhighlight>
Update CreateTargets (line 366) and UpdateTargets (line 126) so that they check if the generated number is in the TargetsUsed list we made
<syntaxhighlight lang="csharp" line="1" start="1">
static List<int> CreateTargets(int SizeOfTargets, int MaxTarget)
{
List<int> Targets = new List<int>();
for (int Count = 1; Count <= 5; Count++)
{
Targets.Add(-1);
}
for (int Count = 1; Count <= SizeOfTargets - 5; Count++)
{
// CHANGE START
int SelectedTarget = GetTarget(MaxTarget);
Targets.Add(SelectedTarget);
if (!TargetsUsed.Contains(SelectedTarget))
{
TargetsUsed.Add(SelectedTarget);
}
// CHANGE END
}
return Targets;
}
static void UpdateTargets(List<int> Targets, bool TrainingGame, int MaxTarget)
{
for (int Count = 0; Count < Targets.Count - 1; Count++)
{
Targets[Count] = Targets[Count + 1];
}
Targets.RemoveAt(Targets.Count - 1);
if (TrainingGame)
{
Targets.Add(Targets[Targets.Count - 1]);
}
else
{
// CHANGE START
if (TargetsUsed.Count == MaxTarget)
{
Targets.Add(-1);
return;
}
int ChosenTarget = GetTarget(MaxTarget);
while (TargetsUsed.Contains(ChosenTarget))
{
ChosenTarget = GetTarget(MaxTarget);
}
Targets.Add(ChosenTarget);
TargetsUsed.Add(ChosenTarget);
// CHANGE END
}
}
</syntaxhighlight>
Finally in the main game loop (line 57) you should add the check to make sure that the user has cleared every possible number
<syntaxhighlight lang="csharp" line="1" start="1">
...
while (!GameOver)
{
DisplayState(Targets, NumbersAllowed, Score);
Console.Write("Enter an expression: ");
UserInput = Console.ReadLine();
Console.WriteLine();
if (CheckIfUserInputValid(UserInput))
{
UserInputInRPN = ConvertToRPN(UserInput);
if (CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber))
{
if (CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, ref Score))
{
RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed);
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber);
}
}
}
Score--;
// CHANGE START
if (Targets[0] != -1 || (CheckIfEveryPossibleTargetHasBeenUsed(MaxNumber) && CheckAllTargetsCleared(Targets)))
{
GameOver = true;
}
else
{
UpdateTargets(Targets, TrainingGame, MaxTarget);
}
// CHANGE END
}
Console.WriteLine("Game over!");
DisplayScore(Score);
</syntaxhighlight>
{{CPTAnswerTabEnd}}
{{CPTAnswerTab|Python}}
Python - JR - Comberton <br></br>
________________________________________________________________ <br></br>
This one becomes quite difficult if you don't have a good understanding of how the modules work.
The solution is relatively simple - you just create a list that stores all the targets that have been used, and then compare new targets generated to that list, to ensure no duplicates are ever added again. The code for initialising the list and ammending the GetTarget subroutine are included below:
<syntaxhighlight lang="python" line="1" start="1">
def Main():
NumbersAllowed = []
Targets = []
MaxNumberOfTargets = 20
MaxTarget = 0
MaxNumber = 0
TrainingGame = False
Choice = input("Enter y to play the training game, anything else to play a random game: ").lower()
print()
if Choice == "y":
MaxNumber = 1000
MaxTarget = 1000
TrainingGame = True
Targets = [-1, -1, -1, -1, -1, 23, 9, 140, 82, 121, 34, 45, 68, 75, 34, 23, 119, 43, 23, 119]
else:
MaxNumber = 10
MaxTarget = 50
Targets = CreateTargets(MaxNumberOfTargets, MaxTarget)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
TargetsNotAllowed = [] # Contains targets that have been guessed once, so can't be generated again
PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber, TargetsNotAllowed) #
input()
</syntaxhighlight>
<syntaxhighlight lang="python" line="1" start="1">
def GetTarget(MaxTarget, TargetsNotAllowed):
num = random.randint(1, MaxTarget)
# Try again until valid number found
if num in TargetsNotAllowed:
return GetTarget(MaxTarget, TargetsNotAllowed)
return num
</syntaxhighlight>
(tbc..)
{{CPTAnswerTabEnd}}
=== '''Make the program object oriented''' ===
{{CPTAnswer|1=
<syntaxhighlight lang="python">
import re
import random
import math
class Game:
def __init__(self):
self.numbers_allowed = []
self.targets = []
self.max_number_of_targets = 20
self.max_target = 0
self.max_number = 0
self.training_game = False
self.score = 0
def main(self):
choice = input("Enter y to play the training game, anything else to play a random game: ").lower()
print()
if choice == "y":
self.max_number = 1000
self.max_target = 1000
self.training_game = True
self.targets = [-1, -1, -1, -1, -1, 23, 9, 140, 82, 121, 34, 45, 68, 75, 34, 23, 119, 43, 23, 119]
else:
self.max_number = 10
self.max_target = 50
self.targets = TargetManager.create_targets(self.max_number_of_targets, self.max_target)
self.numbers_allowed = NumberManager.fill_numbers([], self.training_game, self.max_number)
self.play_game()
input()
def play_game(self):
game_over = False
while not game_over:
self.display_state()
user_input = input("Enter an expression: ")
print()
if ExpressionValidator.is_valid(user_input):
user_input_rpn = ExpressionConverter.to_rpn(user_input)
if NumberManager.check_numbers_used(self.numbers_allowed, user_input_rpn, self.max_number):
is_target, self.score = TargetManager.check_if_target(self.targets, user_input_rpn, self.score)
if is_target:
self.numbers_allowed = NumberManager.remove_numbers(user_input, self.max_number, self.numbers_allowed)
self.numbers_allowed = NumberManager.fill_numbers(self.numbers_allowed, self.training_game, self.max_number)
self.score -= 1
if self.targets[0] != -1:
game_over = True
else:
self.targets = TargetManager.update_targets(self.targets, self.training_game, self.max_target)
print("Game over!")
print(f"Final Score: {self.score}")
def display_state(self):
TargetManager.display_targets(self.targets)
NumberManager.display_numbers(self.numbers_allowed)
print(f"Current score: {self.score}\n")
class TargetManager:
@staticmethod
def create_targets(size_of_targets, max_target):
targets = [-1] * 5
for _ in range(size_of_targets - 5):
targets.append(TargetManager.get_target(max_target))
return targets
@staticmethod
def update_targets(targets, training_game, max_target):
for i in range(len(targets) - 1):
targets[i] = targets[i + 1]
targets.pop()
if training_game:
targets.append(targets[-1])
else:
targets.append(TargetManager.get_target(max_target))
return targets
@staticmethod
def check_if_target(targets, user_input_rpn, score):
user_input_eval = ExpressionEvaluator.evaluate_rpn(user_input_rpn)
is_target = False
if user_input_eval != -1:
for i in range(len(targets)):
if targets[i] == user_input_eval:
score += 2
targets[i] = -1
is_target = True
return is_target, score
@staticmethod
def display_targets(targets):
print("{{!}}", end='')
for target in targets:
print(f"{target if target != -1 else ' '}{{!}}", end='')
print("\n")
@staticmethod
def get_target(max_target):
return random.randint(1, max_target)
class NumberManager:
@staticmethod
def fill_numbers(numbers_allowed, training_game, max_number):
if training_game:
return [2, 3, 2, 8, 512]
while len(numbers_allowed) < 5:
numbers_allowed.append(NumberManager.get_number(max_number))
return numbers_allowed
@staticmethod
def check_numbers_used(numbers_allowed, user_input_rpn, max_number):
temp = numbers_allowed.copy()
for item in user_input_rpn:
if ExpressionValidator.is_valid_number(item, max_number):
if int(item) in temp:
temp.remove(int(item))
else:
return False
return True
@staticmethod
def remove_numbers(user_input, max_number, numbers_allowed):
user_input_rpn = ExpressionConverter.to_rpn(user_input)
for item in user_input_rpn:
if ExpressionValidator.is_valid_number(item, max_number):
if int(item) in numbers_allowed:
numbers_allowed.remove(int(item))
return numbers_allowed
@staticmethod
def display_numbers(numbers_allowed):
print("Numbers available: ", " ".join(map(str, numbers_allowed)))
@staticmethod
def get_number(max_number):
return random.randint(1, max_number)
class ExpressionValidator:
@staticmethod
def is_valid(expression):
return re.search(r"^([0-9]+[\+\-\*\/])+[0-9]+$", expression) is not None
@staticmethod
def is_valid_number(item, max_number):
if re.search(r"^[0-9]+$", item):
item_as_int = int(item)
return 0 < item_as_int <= max_number
return False
class ExpressionConverter:
@staticmethod
def to_rpn(expression):
precedence = {"+": 2, "-": 2, "*": 4, "/": 4}
operators = []
position = 0
operand, position = ExpressionConverter.get_number_from_expression(expression, position)
rpn = [str(operand)]
operators.append(expression[position - 1])
while position < len(expression):
operand, position = ExpressionConverter.get_number_from_expression(expression, position)
rpn.append(str(operand))
if position < len(expression):
current_operator = expression[position - 1]
while operators and precedence[operators[-1]] > precedence[current_operator]:
rpn.append(operators.pop())
if operators and precedence[operators[-1]] == precedence[current_operator]:
rpn.append(operators.pop())
operators.append(current_operator)
else:
while operators:
rpn.append(operators.pop())
return rpn
@staticmethod
def get_number_from_expression(expression, position):
number = ""
while position < len(expression) and re.search(r"[0-9]", expression[position]):
number += expression[position]
position += 1
position += 1
return int(number), position
class ExpressionEvaluator:
@staticmethod
def evaluate_rpn(user_input_rpn):
stack = []
while user_input_rpn:
token = user_input_rpn.pop(0)
if token not in ["+", "-", "*", "/"]:
stack.append(float(token))
else:
num2 = stack.pop()
num1 = stack.pop()
if token == "+":
stack.append(num1 + num2)
elif token == "-":
stack.append(num1 - num2)
elif token == "*":
stack.append(num1 * num2)
elif token == "/":
stack.append(num1 / num2)
result = stack[0]
return math.floor(result) if result.is_integer() else -1
if __name__ == "__main__":
game = Game()
game.main()
</syntaxhighlight>
}}
=== '''Allow the user to save and load the game''' ===
{{CPTAnswerTab|Python}}
If the user enters <code>s</code> or <code>l</code> then save or load the state of the game. The saved game file could also store <code>MaxTarget</code> and <code>MaxNumber</code>. The <code>continue</code> statements let the <code>while</code> loop continue.
<syntaxhighlight lang ="python" line="1" start="1" highlight="3,4,5,11-16">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
print("Enter s to save the game")
print("Enter l to load the game")
print()
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if UserInput == "s":
SaveGameToFile(Targets, NumbersAllowed, Score)
continue
if UserInput == "l":
Targets, NumbersAllowed, Score = LoadGameFromFile()
continue
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
Create a <code>SaveGameToFile()</code> function:
<ul>
<li><code>Targets</code>, <code>NumbersAllowed</code> and <code>Score</code> are written to 3 lines in a text file.
<li><code>[https://docs.python.org/3/library/functions.html#map map()]</code> applies the <code>str()</code> function to each item in the <code>Targets</code> list. So each integer is converted to a string.
<li><code>[https://docs.python.org/3/library/stdtypes.html#str.join join()]</code> concatenates the resulting list of strings using a space character as the separator.
<li>The special code <code>\n</code> adds a newline character.
<li>The same process is used for the <code>NumbersAllowed</code> list of integers.
</ul>
<syntaxhighlight lang ="python" line="1" start="1" highlight="1-13">
def SaveGameToFile(Targets, NumbersAllowed, Score):
try:
with open("savegame.txt","w") as f:
f.write(" ".join(map(str, Targets)))
f.write("\n")
f.write(" ".join(map(str, NumbersAllowed)))
f.write("\n")
f.write(str(Score))
f.write("\n")
print("____Game saved____")
print()
except:
print("Failed to save the game")
</syntaxhighlight>
Create a <code>LoadGameFromFile()</code> function:
<ul>
<li>The first line is read as a string using <code>readline()</code>.
<li>The <code>split()</code> function separates the line into a list of strings, using the default separator which is a space character.
<li><code>map()</code> then applies the <code>int()</code> function to each item in the list of strings, producing a list of integers.
<li>In Python 3, the <code>list()</code> function is also needed to convert the result from a map object to a list.
<li>The function returns <code>Targets</code>, <code>NumbersAllowed</code> and <code>Score</code>.
</ul>
<syntaxhighlight lang ="python" line="1" start="1" highlight="1-14">
def LoadGameFromFile():
try:
with open("savegame.txt","r") as f:
Targets = list(map(int, f.readline().split()))
NumbersAllowed = list(map(int, f.readline().split()))
Score = int(f.readline())
print("____Game loaded____")
print()
except:
print("Failed to load the game")
print()
return [],[],-1
return Targets, NumbersAllowed, Score
</syntaxhighlight>
Example "savegame.txt" file, showing Targets, NumbersAllowed and Score:
<syntaxhighlight>
-1 -1 -1 -1 -1 24 5 19 39 31 1 30 13 8 46 41 32 33 7 4
3 10 2 8 2
0
</syntaxhighlight>
Typical game output:
<syntaxhighlight>
Enter y to play the training game, anything else to play a random game:
Enter s to save the game
Enter l to load the game
| | | | | |17|30|27|18|13|1|1|23|31|3|41|6|41|27|34|
Numbers available: 4 1 2 3 7
Current score: 0
Enter an expression: s
____Game saved____
| | | | | |17|30|27|18|13|1|1|23|31|3|41|6|41|27|34|
Numbers available: 4 1 2 3 7
Current score: 0
Enter an expression: 4+1+2+3+7
| | | | | |30|27|18|13|1|1|23|31|3|41|6|41|27|34|28|
Numbers available: 9 3 4 1 5
Current score: 1
Enter an expression: l
____Game loaded____
| | | | | |17|30|27|18|13|1|1|23|31|3|41|6|41|27|34|
Numbers available: 4 1 2 3 7
Current score: 0
Enter an expression:
</syntaxhighlight>
<i>datb2</i>
{{CPTAnswerTabEnd}}{{CPTAnswerTab|C#}}
I only Focused on saving as loading data probably wont come up.<syntaxhighlight lang="csharp" line="1">
static void SaveState(int Score, List<int> Targets, List<int>NumbersAllowed)
{
string targets = "", AllowedNumbers = "";
for (int i = 0; i < Targets.Count; i++)
{
targets += Targets[i];
if (Targets[i] != Targets[Targets.Count - 1])
{
targets += '|';
}
}
for (int i = 0; i < NumbersAllowed.Count; i++)
{
AllowedNumbers += NumbersAllowed[i];
if (NumbersAllowed[i] != NumbersAllowed[NumbersAllowed.Count - 1])
{
AllowedNumbers += '|';
}
}
File.WriteAllText("GameState.txt", Score.ToString() + '\n' + targets + '\n' + AllowedNumbers);
}
</syntaxhighlight>Updated PlayGame: <syntaxhighlight lang="csharp" line="1">
Console.WriteLine();
Console.Write("Enter an expression or enter \"s\" to save the game state: ");
UserInput = Console.ReadLine();
Console.WriteLine();
//change start
if (UserInput.ToLower() == "s")
{
SaveState(Score, Targets, NumbersAllowed);
continue;
}
//change end
if (CheckIfUserInputValid(UserInput))
</syntaxhighlight>{{CPTAnswerTabEnd}}{{CPTAnswerTab|Python}}This solution focuses on logging all values that had been printed the previous game, overwriting the score, and then continuing the game as before. A game log can be saved, reloaded and then continued before being saved again without loss of data.
Add selection (<code>if</code>) statement at the top of <code>PlayGame()</code> to allow for user to input desired action
<syntaxhighlight lang ="python">
Score = 0
GameOver = False
if (input("Load last saved game? (y/n): ").lower() == "y"):
with open("savegame.txt", "r") as f:
lines = []
for line in f:
lines.append(line)
print(line)
Score = re.search(r'\d+', lines[-2])
else:
open("savegame.txt", 'w').close()
while not GameOver:
</syntaxhighlight>
Change <code>DisplayScore()</code>, <code>DisplayNumbersAllowed()</code> and <code>DisplayTargets()</code> to allow for the values to be returned instead of being printed.
<syntaxhighlight lang ="python">
def DisplayScore(Score):
output = str("Current score: " + str(Score))
print(output)
print()
print()
return output
def DisplayNumbersAllowed(NumbersAllowed):
list_of_numbers = []
for N in NumbersAllowed:
list_of_numbers.append((str(N) + " "))
output = str("Numbers available: " + "".join(list_of_numbers))
print(output)
print()
print()
return output
def DisplayTargets(Targets):
list_of_targets = []
for T in Targets:
if T == -1:
list_of_targets.append(" ")
else:
list_of_targets.append(str(T))
list_of_targets.append("|")
output = str("|" + "".join(list_of_targets))
print(output)
print()
print()
return output
</syntaxhighlight>
Print returned values, as well as appending to the save file.
<syntaxhighlight lang ="python">
def DisplayState(Targets, NumbersAllowed, Score):
DisplayTargets(Targets)
DisplayNumbersAllowed(NumbersAllowed)
DisplayScore(Score)
try:
with open("savegame.txt", "a") as f:
f.write(DisplayTargets(Targets) + "\n\n" + DisplayNumbersAllowed(NumbersAllowed) + "\n\n" + DisplayScore(Score) + "\n\n")
except Exception as e:
print(f"There was an exception: {e}")
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Display a hint if the player is stuck''' ===
{{CPTAnswerTab|Python}}
If the user types <code>h</code> during the game, then up to 5 hints will be shown. The <code>continue</code> statement lets the <code>while</code> loop continue, so that the player's score is unchanged.
<syntaxhighlight lang="python" line="1" start="1" highlight="4,5,10-12">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
print("Type h for a hint")
print()
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if UserInput == "h":
DisplayHints(Targets, NumbersAllowed)
continue
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
Add a new <code>DisplayHints()</code> function which finds several hints by guessing valid inputs.
<syntaxhighlight lang="python" line="1" start="1" highlight="1-100">
def DisplayHints(Targets, NumbersAllowed):
Loop = 10000
OperationsList = list("+-*/")
NumberOfHints = 5
while Loop > 0 and NumberOfHints > 0:
Loop -= 1
TempNumbersAllowed = NumbersAllowed
random.shuffle(TempNumbersAllowed)
Guess = str(TempNumbersAllowed[0])
for i in range(1, random.randint(1,4) + 1):
Guess += OperationsList[random.randint(0,3)]
Guess += str(TempNumbersAllowed[i])
EvaluatedAnswer = EvaluateRPN(ConvertToRPN(Guess))
if EvaluatedAnswer != -1 and EvaluatedAnswer in Targets:
print("Hint: " + Guess + " = " + str(EvaluatedAnswer))
NumberOfHints -= 1
if Loop <= 0 and NumberOfHints == 5:
print("Sorry I could not find a solution for you!")
print()
</syntaxhighlight>
(Optional) Update the <code>EvaluateRPN()</code> function to prevent any <code>division by zero</code> errors:
<syntaxhighlight lang="python" line="1" start="1" highlight="19,20">
def EvaluateRPN(UserInputInRPN):
S = []
while len(UserInputInRPN) > 0:
while UserInputInRPN[0] not in ["+", "-", "*", "/"]:
S.append(UserInputInRPN[0])
UserInputInRPN.pop(0)
Num2 = float(S[-1])
S.pop()
Num1 = float(S[-1])
S.pop()
Result = 0.0
if UserInputInRPN[0] == "+":
Result = Num1 + Num2
elif UserInputInRPN[0] == "-":
Result = Num1 - Num2
elif UserInputInRPN[0] == "*":
Result = Num1 * Num2
elif UserInputInRPN[0] == "/":
if Num2 == 0.0:
return -1
Result = Num1 / Num2
UserInputInRPN.pop(0)
S.append(str(Result))
if float(S[0]) - math.floor(float(S[0])) == 0.0:
return math.floor(float(S[0]))
else:
return -1
</syntaxhighlight>
Example output:
<syntaxhighlight>
Enter y to play the training game, anything else to play a random game: y
Type h for a hint
| | | | | |23|9|140|82|121|34|45|68|75|34|23|119|43|23|119|
Numbers available: 2 3 2 8 512
Current score: 0
Enter an expression: h
Hint: 3-2+8 = 9
Hint: 3*2+512/8-2 = 68
Hint: 512/2/8+2 = 34
Hint: 3*8-2/2 = 23
Hint: 8+2/2 = 9
</syntaxhighlight>
<i>datb2</i>
{{CPTAnswerTabEnd}}
=== If a player uses very large numbers, i.e. numbers that lie beyond the defined MaxNumber that aren't allowed in NumbersAllowed, the program does not recognise this and will still reward a hit target. Make changes to penalise the player for doing so. ===
{{CPTAnswerTab|Python}}
<syntaxhighlight lang ="python" line="1" start="1" highlight="11-12">
def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
Temp = []
for Item in NumbersAllowed:
Temp.append(Item)
for Item in UserInputInRPN:
if CheckValidNumber(Item, MaxNumber):
if int(Item) in Temp:
Temp.remove(int(Item))
else:
return False
else:
return False
return True
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== Support negative numbers, exponentiation (^), modulus (%), and brackets/parenthesis ===
{{CPTAnswerTab|Python}}
<syntaxhighlight lang ="python" line="1" start="1">
def ConvertToRPN(UserInput):
output = []
operatorsStack = []
digits = ''
allowedOperators = {'+' : [2, True], '-': [2, True], '*': [3, True], '/': [3, True], '%': [3, True], '^': [4, False]}
for char in UserInput:
if re.search("^[0-9]$", char) is not None: # if is digit
digits += char
continue
if digits == '' and char == '-': # negative numbers
digits += '#'
continue
if digits != '':
output.append(str(int(digits)))
digits = ''
operator = allowedOperators.get(char)
if operator is not None:
if len(operatorsStack) == 0:
operatorsStack.append(char)
continue
topOperator = operatorsStack[-1]
while topOperator != '(' and (allowedOperators[topOperator][0] > operator[0] or (allowedOperators[topOperator][0] == operator[0] and operator[1])):
output.append(topOperator)
del operatorsStack[-1]
topOperator = operatorsStack[-1]
operatorsStack.append(char)
continue
if char == '(':
operatorsStack.append(char)
continue
if char == ')':
topOperator = operatorsStack[-1]
while topOperator != '(':
if len(operatorsStack) == 0:
return None
output.append(topOperator)
del operatorsStack[-1]
topOperator = operatorsStack[-1]
del operatorsStack[-1]
continue
return None
if digits != '':
output.append(digits)
while len(operatorsStack) != 0:
topOperator = operatorsStack[-1]
if topOperator == '(':
return None
output.append(topOperator)
del operatorsStack[-1]
return output
</syntaxhighlight>
This is an implementation of the shunting yard algorithm, which could also be extended to support functions (but I think it's unlikely that will be a task).
It's unlikely that any single question will ask to support this many features, but remembering this roughly might help if can't figure out how to implement something more specific.
It's worth noting that this technically does not fully support negative numbers - "--3" might be consider valid and equal to "3". This algorithm does not support that.
This implementation removes the need for the `Position` management & `GetNumberFromUserInput` method. It rolls it into a single-pass.
<syntaxhighlight lang ="python" line="1" start="1" highlight="4,8,10,19-24">
def EvaluateRPN(UserInputInRPN):
S = []
while len(UserInputInRPN) > 0:
while UserInputInRPN[0] not in ["+", "-", "*", "/", '^', '%']:
char = UserInputInRPN[0]
S.append(char)
UserInputInRPN.pop(0)
Num2 = float(S[-1].replace('#', '-'))
S.pop()
Num1 = float(S[-1].replace('#', '-'))
S.pop()
Result = 0.0
if UserInputInRPN[0] == "+":
Result = Num1 + Num2
elif UserInputInRPN[0] == "-":
Result = Num1 - Num2
elif UserInputInRPN[0] == "*":
Result = Num1 * Num2
elif UserInputInRPN[0] == "/":
Result = Num1 / Num2
elif UserInputInRPN[0] == "^":
Result = Num1 ** Num2
elif UserInputInRPN[0] == "%":
Result = Num1 % Num2
# ...
</syntaxhighlight>
This solution also changes the regular expression required for `CheckIfUserInputValid` significantly. I chose to disable this validation, since the regular expression would be more involved.
Checking for matching brackets is ~. In languages with support for recursive 'Regex', it might technically be possible to write a Regex (for example in the PCRE dialect). However, as all questions must be of equal difficulty in all languages, this is an interesting problem that's unlikely to come up. Remember that simply counting opening and closing brackets may or may not be sufficient.{{CPTAnswerTabEnd}}
=== Fix the bug where two digit numbers in random games can be entered as sums of numbers that don't occur in the allowed numbers list. Ie the target is 48, you can enter 48-0 and it is accepted. ===
{{CPTAnswerTab|C#}}
Modify the <code>CheckNumbersUsedAreAllInNumbersAllowed</code> method so that it returns false for invalid inputs:
<syntaxhighlight lang="csharp" line="1" start="1">
static bool CheckNumbersUsedAreAllInNumbersAllowed(List<int> NumbersAllowed, List<string> UserInputInRPN, int MaxNumber)
{
List<int> Temp = new List<int>();
foreach (int Item in NumbersAllowed)
{
Temp.Add(Item);
}
foreach (string Item in UserInputInRPN)
{
Console.WriteLine(Item);
if (CheckValidNumber(Item, MaxNumber, NumbersAllowed))
{
if (Temp.Contains(Convert.ToInt32(Item)))
{
Temp.Remove(Convert.ToInt32(Item));
}
else
{
return false;
}
return true;
}
}
return false;
}
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== Implement a feature where every round, a random target (and all its occurrences) is shielded, and cannot be targeted for the duration of the round. If targeted, the player loses a point as usual. The target(s) should be displayed surrounded with brackets like this: |(n)| ===
{{CPTAnswerTab|Python}}
Modify <code>PlayGame</code> to call <code>ShieldTarget</code> at the start of each round.
<syntaxhighlight lang ="python" line="1" start="1" highlight="5">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
ShieldTarget(Targets)
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
Create a <code>SheildTarget</code> function. Before creating new shielded target(s), unshield existing target(s). Loop through <code>Targets</code> list to check for existing shielded target(s), identify shielded target(s) as they will have type <code>str</code>, convert shielded target back to a normal target by using <code>.strip()</code> to remove preceding and trailing brackets and type cast back to an <code>int</code>. Setup new shielded targets: loop until a random non-empty target is found, shield all occurrences of the chosen target by converting it to a string and concatenating with brackets e.g. 3 becomes "(3)" marking it as "shielded".
<syntaxhighlight lang ="python" line="1" start="1">
def ShieldTarget(Targets):
for i in range(len(Targets)):
if type(Targets[i]) == str:
Targets[i] = int(Targets[i].strip("()"))
FoundRandomTarget = False
while not FoundRandomTarget:
RandomTarget = Targets[random.randint(0, len(Targets)-1)]
if RandomTarget != -1:
FoundRandomTarget = True
for i in range(len(Targets)):
if Targets[i] == RandomTarget:
Targets[i] = "(" + str(RandomTarget) + ")"
</syntaxhighlight>
''evokekw''
Sample output:
<syntaxhighlight>
| | | | | |(23)|9|140|82|121|34|45|68|75|34|(23)|119|43|(23)|119|
Numbers available: 2 3 2 8 512
Current score: 0
Enter an expression: 8+3-2
| | | | |23| |140|82|121|34|45|68|75|34|23|(119)|43|23|(119)|(119)|
Numbers available: 2 3 2 8 512
Current score: 1
Enter an expression: 2+2
| | | |23| |140|82|121|(34)|45|68|75|(34)|23|119|43|23|119|119|119|
Numbers available: 2 3 2 8 512
Current score: 0
Enter an expression: 512/8/2+2
| | |23| |140|82|121|34|45|68|75|34|23|(119)|43|23|(119)|(119)|(119)|(119)|
Numbers available: 2 3 2 8 512
Current score: -1
Enter an expression:
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Do not advance the target list forward for invalid entries, instead inform the user the entry was invalid and prompt them for a new one''' ===
{{CPTAnswerTab|Python}}Modify the <code>PlayGame</code> function, removing an if clause in favour of a loop. Additionally, remove the line <code>score -= 1</code> and as a consequence partially fix a score bug in the program due to this line not being contained in an else clause.
<syntaxhighlight lang="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
while not CheckIfUserInputValid(UserInput):
print("That expression was invalid. ")
UserInput = input("Enter an expression: ")
print()
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Implement a menu where the user can start a new game or quit their current game''' ===
TBA
=== '''Ensure the program ends when the game is over''' ===
TBA
=== '''Give the user a single-use ability to generate a new set of allowable numbers''' ===
TBA
=== '''Allow the user to input and work with negative numbers''' ===
* Assume that the targets and allowed numbers may be finitely negative - to test your solution, change one of the targets to "6" and the allowed number "2" to "-2": "-2+8 = 6"
* How will you prevent conflicts with the -1 used as a placeholder?
* The current RPN processing doesn't understand a difference between "-" used as subtract vs to indicate a negative number. What's the easiest way to solve this?
* The regular expressions used for validation will need fixing to allow "-" in the correct places. Where are those places, how many "-"s are allowed in front of a number, and how is "-" written in Regex?
* A number is now formed from more than just digits. How will `GetNumberFromUserInput` need to change to get the whole number including the "-"?
{{CPTAnswerTab|Python}}<syntaxhighlight lang="python" line="1" start="1">
# Manually change the training game targets from -1 to `None`. Also change anywhere where a -1 is used as the empty placeholder to `None`.
# Change the condition for display of the targets
def DisplayTargets(Targets):
print("|", end="")
for T in Targets:
if T == None:
print(" ", end="")
else:
print(T, end="")
print("|", end="")
print()
print()
# We solve an intermediate problem of the maxNumber not being treated correctly by making this return status codes instead - there's one other place not shown where we need to check the output code
def CheckValidNumber(Item, MaxNumber):
if re.search("^\\-?[0-9]+$", Item) is not None:
ItemAsInteger = int(Item)
if ItemAsInteger > MaxNumber:
return -1
return 0
return -2
# Change to handle the new status codes
def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
Temp = []
for Item in NumbersAllowed:
Temp.append(Item)
for Item in UserInputInRPN:
result = CheckValidNumber(Item, MaxNumber)
if result == 0:
if not int(Item) in Temp:
return False
Temp.remove(int(Item))
elif result == -1:
return False
return True
# We change some lines - we're treating the negative sign used to indicate a negative number as a new special symbol: '#'
def ConvertToRPN(UserInput):
# ...
# When appending to the final expression we need to change the sign in both places necessary
UserInputInRPN.append(str(Operand).replace("-", "#"))
# And same in reverse here:
def EvaluateRPN(UserInputInRPN):
# ...
Num2 = float(S[-1].replace("#", "-")) # and Num1
# Update this with a very new implementation which handles "-"
def GetNumberFromUserInput(UserInput, Position):
Number = ""
Position -= 1
hasSeenNum = False
while True:
Position += 1
if Position >= len(UserInput):
break
char = UserInput[Position]
if char == "-":
if hasSeenNum or Number == "-":
break
Number += "-"
continue
if re.search("[0-9]", str(UserInput[Position])) is not None:
hasSeenNum = True
Number += UserInput[Position]
continue
break
if hasSeenNum:
return int(Number), Position + 1
else:
return -1, Position + 1
# Update the regexes here and elsewhere (not shown)
def CheckIfUserInputValid(UserInput):
if re.search("^(\\-?[0-9]+[\\+\\-\\*\\/])+\\-?[0-9]+$", UserInput) is not None:
# This is entirely unnecessary - why not just return the statement in the comparison above
# Maybe this indicates a potential question which will change something here, so there's some nice templating...
# But in Java, this isn't here?
return True
else:
return False
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Increase the score with a bonus equal to the quantity of allowable numbers used in a qualifying expression''' ===
{{CPTAnswerTab|Python}}Modify the <code>PlayGame</code> function, so that we can receive the bonus count from <code>CheckNumbersUsedAreAllInNumbersAllowed</code>, where the bonus will be calculated depending on how many numbers from NumbersAllowed were used in an expression. This bonus value will be passed back into <code>PlayGame</code>, where it will be passed as a parameter for <code>CheckIfUserInputEvaluationIsATarget</code>. In this function if <code>UserInputEvaluationIsATarget</code> is True then we apply the bonus to <code>Score</code>
<syntaxhighlight lang="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
NumbersUsedAreAllInNumbersAllowed, Bonus = CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber)
if NumbersUsedAreAllInNumbersAllowed:
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, Bonus, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
Temp = []
for Item in NumbersAllowed:
Temp.append(Item)
for Item in UserInputInRPN:
if CheckValidNumber(Item, MaxNumber):
if int(Item) in Temp:
Temp.remove(int(Item))
else:
return False, 0
Bonus = len(NumbersAllowed) - len(Temp)
print(f"You have used {Bonus} numbers from NumbersAllowed, this will be your bonus")
return True, Bonus
def CheckIfUserInputEvaluationIsATarget(Targets, Bonus, UserInputInRPN, Score):
UserInputEvaluation = EvaluateRPN(UserInputInRPN)
UserInputEvaluationIsATarget = False
if UserInputEvaluation != -1:
for Count in range(0, len(Targets)):
if Targets[Count] == UserInputEvaluation:
Score += 2
Targets[Count] = -1
UserInputEvaluationIsATarget = True
if UserInputEvaluationIsATarget:
Score += Bonus
return UserInputEvaluationIsATarget, Score
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Implement a multiplicative score bonus for each priority (first number in the target list) number completed sequentially''' ===
TBA
=== '''If the user creates a qualifying expression which uses all the allowable numbers, grant the user a special reward ability (one use until unlocked again) to allow the user to enter any numbe'''r of choice and this value will be removed from the target list ===
{{CPTAnswerTab|Python}}Modify the <code>PlayGame</code> function, so you can enter a keyword (here is used 'hack' but can be anything unique), then check if the user has gained the ability. If the ability flag is set to true then allow the user to enter a number of their choice from the Targets list. Once the ability is used set the ability flag to false so it cannot be used. We will also modify <code>CheckNumbersUsedAreAllInNumbersAllowed</code> to confirm the user has used all of the numbers from <code>NumbersAllowed</code>. This is so that the ability flag can be activated and the user informed using a suitable message.
<syntaxhighlight lang="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
NumberAbility = False
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if UserInput == "hack" and NumberAbility == True:
print("Here is the Targets list. Pick any number and it will be removed!")
DisplayTargets(Targets)
Choice = 0
while Choice not in Targets:
Choice = int(input("Enter a number > "))
while Choice in Targets:
Targets[Targets.index(Choice)] = -1
continue
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
NumbersUsedInNumbersAllowed, NumberAbility = CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber)
if NumberAbility:
print("You have received a special one-time reward ability to remove one target from the Targets list.\nUse the keyword 'hack' to activate!")
if NumbersUsedInNumbersAllowed:
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
Temp = []
for Item in NumbersAllowed:
Temp.append(Item)
for Item in UserInputInRPN:
if CheckValidNumber(Item, MaxNumber):
if int(Item) in Temp:
Temp.remove(int(Item))
else:
return False, False
Ability = False
if len(Temp) == 0:
Ability = True
return True, Ability
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''When a target is cleared, put a £ symbol in its position in the target list. When the £ symbol reaches the end of the tracker, increase the score by 1''' ===
{{CPTAnswerTab|Python}}Modify the <code>PlayGame</code> function, so that we can check to see if the first item in the <code>Targets</code> list is a '£' symbol, so that the bonus point can be added to the score. Also modify the <code>GameOver</code> condition so that it will not end the game if '£' is at the front of the list. Also we will modify <code>CheckNumbersUsedAreAllInNumbersAllowed</code> so that when a target is cleared, instead of replacing it with '-1', we will instead replace it with '£'.
<syntaxhighlight lang="python" line="1" start="1">
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
if Targets[0] == "£":
Score += 1
Score -= 1
if Targets[0] != -1 and Targets[0] != "£":
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
def CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score):
UserInputEvaluation = EvaluateRPN(UserInputInRPN)
UserInputEvaluationIsATarget = False
if UserInputEvaluation != -1:
for Count in range(0, len(Targets)):
if Targets[Count] == UserInputEvaluation:
Score += 2
Targets[Count] = "£"
UserInputEvaluationIsATarget = True
return UserInputEvaluationIsATarget, Score
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Implement a victory condition which allows the player to win the game by achieving a certain score. Allow the user to pick difficulty, e.g. easy (10), normal (20), hard (41) extreme (67)''' ===
{{CPTAnswerTab|Python}}Modify the <code>Main</code> function so that the user has the option to select a Victory condition. This Victory condition will be selected and passed into the <code>PlayGame</code> function. We will place the Victory condition before the check to see if the item at the front of <code>Targets</code> is -1. If the user score is equal to or greater than the victory condition, we will display a victory message and set <code>GameOver</code> to True, thus ending the game
<syntaxhighlight lang="python" line="1" start="1">
def Main():
NumbersAllowed = []
Targets = []
MaxNumberOfTargets = 20
MaxTarget = 0
MaxNumber = 0
TrainingGame = False
Choice = input("Enter y to play the training game, anything else to play a random game: ").lower()
print()
if Choice == "y":
MaxNumber = 1000
MaxTarget = 1000
TrainingGame = True
Targets = [-1, -1, -1, -1, -1, 23, 9, 140, 82, 121, 34, 45, 68, 75, 34, 23, 119, 43, 23, 119]
else:
MaxNumber = 10
MaxTarget = 50
Targets = CreateTargets(MaxNumberOfTargets, MaxTarget)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
VictoryPoints = {"e":10,"m":20,"h":40}
Choice = input("Enter\n - e for Easy Victory (10 Score Points)\n - m for Medium Victory Condition (20 Score Points)\n - h for Hard Victory Condition (40 Score Points)\n - n for Normal Game Mode\n : ").lower()
if Choice in VictoryPoints.keys():
VictoryCondition = VictoryPoints[Choice]
else:
VictoryCondition = False
PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber, VictoryCondition)
input()
def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber, VictoryCondition):
if VictoryCondition:
print(f"You need {VictoryCondition} points to win")
Score = 0
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
UserInput = input("Enter an expression: ")
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
if CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNumber):
IsTarget, Score = CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score)
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
Score -= 1
if VictoryCondition:
if Score >= VictoryCondition:
print("You have won the game!")
GameOver = True
if Targets[0] != -1:
GameOver = True
else:
Targets = UpdateTargets(Targets, TrainingGame, MaxTarget)
print("Game over!")
DisplayScore(Score)
</syntaxhighlight>
{{CPTAnswerTabEnd}}
=== '''Shotgun. If an expression exactly evaluates to a target, the score is increased by 3 and remove the target as normal. If an evaluation is within 1 of the target, the score is increased by 1 and remove those targets too''' ===
TBA
=== '''Every time the user inputs an expression, shuffle the current position of all targets (cannot push a number closer to the end though)''' ===
TBA
=== '''Speed Demon. Implement a mode where the target list moves a number of places equal to the current player score. Instead of ending the game when a target gets to the end of the tracker, subtract 1 from their score. If their score ever goes negative, the player loses''' ===
TBA
=== '''Allow the user to save the current state of the game using a text file and implement the ability to load up a game when they begin the program''' ===
TBA
=== '''Multiple of X. The program should randomly generate a number each turn, e.g. 3 and if the user creates an expression which removes a target which is a multiple of that number, give them a bonus of their score equal to the multiple (in this case, 3 extra score)''' ===
TBA
=== '''Validate a user's entry to confirm their choice before accepting an expression''' ===
TBA
=== '''Prime time punch. If the completed target was a prime number, destroy the targets on either side of the prime number (count them as scored)''' ===
TBA
=== '''Do not use reverse polish notation''' ===
TBA
=== '''Allow the user to specify the highest number within the five <code>NumbersAllowed</code>''' ===
TBA
64z8fayt1kseuopobwuc5h15dmu5bci
Spain at the Beginning of 21st Century/Territory and demographics
0
469498
4640501
4436378
2026-06-17T06:25:37Z
Elysiansu
3607470
/* Territory and environment */
4640501
wikitext
text/x-wiki
''All shown statistical data come from the 2000 edition of Statistical Yearbook of Spain''.<ref>{{Cite web |date=2024-04-22 |title=Productos y servicios / Publicaciones gratuitas / Anuario Estadístico de España |url=https://web.archive.org/web/20240422032708/https://www.ine.es/prodyser/pubweb/anuarios_mnu.htm |access-date=2024-09-15 |website=web.archive.org}}</ref>
== Territory and environment ==
''Text content to be added here''
* Total surface area of Spain: 506,030 sq km (divided into 17 autonomous communities and 2 autonomous cities, 50 provinces, and 8,109 municipalities).
* Maximum altitude: Teide (Tenerife, Canary Islands), with 3,718 meters above sea level.
* Maximum altitude in the Iberian Peninsula: Mulhacen (Granada province, Andalusia), with 3,478 meters above sea level.
* Total volume of water controlled and distributed for public supply (thousands of cubic meters): 3,535,718
* Volume of wastewater collected (thousands of cubic meters): 7,927,559
* Collection of mixed waste: 20,951,669 tons.
* Selective waste collection: 1,470,095 tons.
== TERRITORIAL BACKGROUND: ==
* '''''Mainland:''''' ''Roughly 84% of the landmass, dominated, by plateaus and high mountain ranges.''
* '''Archipelagos:''' Includes the '''Balearic Islands''' (mediterranean) and the '''Canary Islands''' (Atlantic).
* '''North Africa:''' Comprises the autonomous cities of '''Ceuta and Melilla,''' plus minor sovereignty islets.
* '''Land Borders:''' Shares borders with '''Portugal, France, Andorra,''' and the British Overseas Territory of '''Gibraltar.'''
=== Map of Spain in year 2000 ===
[[File:Espana Mapa fisico 1-1.250.000 2000.jpg|center|800px]]
== Demographics ==
''Text content to be added here''
=== Total population of Spain ===
{| class="wikitable" style="margin:auto"
|-
! Both sexes !! Men !! Women
|-
| 40,202,160 || 19,670,642 || 20,531,518
|-
|}
=== Natural movement of the population ===
{| class="wikitable" style="margin:auto"
|-
! Births !! Deaths !! Vegetative growth
|-
| 377,809 || 370,423 || 7,386
|-
|}
=== Life expectancy at birth (years) ===
{| class="wikitable" style="margin:auto"
|-
! Both sexes !! Men !! Women
|-
| 78.31 || 74.74 || 81.88
|-
|}
=== Migrations ===
{| class="wikitable" style="margin:auto"
|-
! Emigrations !! Immigrations
|-
| 9,061 || 24,032
|-
|}
== References==
{{Reflist}}
{{BookCat}}
9xd3rerplw87qdkktiecy6r9ms21aky
User:JJPMaster (bot)/markAdmins-Data.json
2
471107
4640456
4640047
2026-06-16T18:49:14Z
JJPMaster (bot)
3488561
Bot: Updating markAdmins data
4640456
json
application/json
{
".snoopy.": [
"global-rollbacker",
"editor"
],
"1234qwer1234qwer4": [
"editor",
"steward"
],
"157yagz5r48a5f1a1f": [
"editor"
],
"1997kB": [
"global-rollbacker",
"global-renamer",
"editor"
],
"1F616EMO": [
"global-renamer"
],
"1exec1": [
"transwiki",
"editor"
],
"1sfoerster": [
"editor"
],
"20041027 tatsu": [
"global-rollbacker"
],
"2005-Fan": [
"transwiki",
"editor",
"uploader"
],
"331dot": [
"global-renamer"
],
"33rogers": [
"editor"
],
"3MMPEYTON": [
"editor"
],
"4PlayerChess": [
"autoreview"
],
"4pillars": [
"editor"
],
"511KeV": [
"global-rollbacker"
],
"94rain": [
"global-rollbacker",
"editor"
],
"A R King": [
"editor"
],
"A Sulaiman Z": [
"editor"
],
"A.K.Karthikeyan": [
"editor"
],
"A09": [
"steward"
],
"AFBorchert": [
"vrt-permissions"
],
"AIProf": [
"editor"
],
"ALittleSlow": [
"autoreview"
],
"AManWithNoPlan": [
"editor"
],
"ATannedBurger": [
"global-renamer"
],
"AVRS": [
"editor"
],
"Aafi": [
"vrt-permissions"
],
"Abenwagner": [
"editor"
],
"Abigor": [
"editor"
],
"Abitt002": [
"editor"
],
"Abyssal": [
"editor"
],
"Acagastya": [
"autoreview"
],
"Acalamari": [
"global-renamer"
],
"Acarologiste": [
"editor"
],
"AcidBat": [
"editor"
],
"Acrow005": [
"editor"
],
"Actualist": [
"editor"
],
"Adalvis": [
"editor"
],
"Adart001": [
"editor"
],
"Adavyd": [
"global-renamer"
],
"Addihockey10": [
"editor"
],
"Addihockey10 (automated)": [
"editor"
],
"Adrignola": [
"editor"
],
"AdventureWriter": [
"editor"
],
"Aferg006": [
"editor"
],
"Afett001": [
"editor"
],
"Affe2011": [
"global-rollbacker"
],
"Agnerf": [
"editor",
"uploader"
],
"Agpires": [
"editor"
],
"Agricola": [
"editor"
],
"Agusbou2015": [
"editor"
],
"Ah3kal": [
"editor"
],
"Ahecht": [
"global-renamer",
"vrt-permissions"
],
"Ahonc": [
"global-renamer",
"vrt-permissions"
],
"AiClassEland": [
"editor"
],
"Ainz Ooal Gown": [
"editor"
],
"Airpmb": [
"editor"
],
"Ajraddatz": [
"editor",
"steward"
],
"Aka": [
"vrt-permissions"
],
"Alanah.97": [
"autoreview"
],
"Albertoleoncio": [
"steward",
"vrt-permissions"
],
"Albmont": [
"editor"
],
"Aldnonymous": [
"editor"
],
"Aledownload": [
"editor"
],
"Alexlatham96": [
"editor"
],
"Alextejthompson": [
"editor"
],
"Alison": [
"global-rollbacker"
],
"AllenZh": [
"editor"
],
"Alphama": [
"global-renamer"
],
"AlvaroMolina": [
"editor"
],
"AmandaNP": [
"steward"
],
"Ambrevar": [
"editor"
],
"Amcgail": [
"editor"
],
"Ameisenigel": [
"global-rollbacker",
"global-sysop",
"ombuds",
"editor",
"vrt-permissions"
],
"AmieKim": [
"editor"
],
"Amire80": [
"global-sysop"
],
"Anachronist": [
"editor",
"vrt-permissions"
],
"Ancient9983": [
"editor"
],
"Andrei Stroe": [
"vrt-permissions"
],
"Andrew janke": [
"editor"
],
"Andriy.v": [
"vrt-permissions"
],
"Andyross": [
"editor"
],
"Anil Shaligram": [
"editor"
],
"Animajosser": [
"editor"
],
"Anne Correia": [
"editor"
],
"Anonim Şahıs": [
"editor"
],
"Anonymity": [
"editor"
],
"AnotherEditor144": [
"autoreview"
],
"Antanana": [
"vrt-permissions"
],
"Antandrus": [
"editor"
],
"Anthere": [
"editor"
],
"AntiCompositeNumber": [
"steward",
"vrt-permissions"
],
"Antonizoon": [
"editor"
],
"Antonw": [
"editor"
],
"Apfelmus": [
"editor"
],
"Aphoneyclimber": [
"editor"
],
"Apocheir": [
"editor"
],
"Aqurs1": [
"global-rollbacker",
"global-renamer",
"global-sysop"
],
"AramilFeraxa": [
"steward"
],
"Arch dude": [
"editor"
],
"Archolman": [
"editor"
],
"Arcticocean": [
"ombuds"
],
"ArdentPerf": [
"editor",
"uploader"
],
"Arlen22": [
"transwiki",
"editor"
],
"Armchair": [
"editor"
],
"Arno-nl": [
"editor"
],
"Arrow303": [
"vrt-permissions"
],
"Arthurvogel": [
"editor"
],
"Artoria2e5": [
"editor"
],
"Arturoiochoam": [
"editor"
],
"Arunreginald": [
"editor"
],
"AshLin": [
"editor"
],
"Atcovi": [
"sysop",
"global-rollbacker"
],
"Athrash": [
"editor"
],
"Atiedebee": [
"editor"
],
"Atlas.Spheres": [
"editor"
],
"Atsme": [
"vrt-permissions"
],
"Auremel": [
"editor"
],
"Austncorp": [
"editor"
],
"AuthorsAndContributorsBot": [
"autoreview"
],
"Avicennasis": [
"editor"
],
"Avraham": [
"global-renamer",
"editor"
],
"Awesome Princess": [
"editor"
],
"Axpde": [
"editor"
],
"Az1568": [
"global-rollbacker"
],
"Az2008": [
"editor"
],
"Azotochtli": [
"editor"
],
"B.Korlah": [
"editor"
],
"BD2412": [
"editor"
],
"BORGATO Pierandrea": [
"editor"
],
"BRPever": [
"global-rollbacker",
"global-sysop"
],
"BRUTE": [
"editor"
],
"Backfromquadrangle": [
"editor"
],
"Baiji": [
"global-rollbacker"
],
"Bakasakali": [
"editor"
],
"Balaji.md au": [
"editor"
],
"BarkingFish": [
"editor"
],
"Barras": [
"steward"
],
"Base": [
"steward",
"vrt-permissions"
],
"Bastique": [
"editor"
],
"Bautsch": [
"editor"
],
"BeardMD": [
"editor"
],
"Beetstra": [
"global-rollbacker"
],
"BenTels": [
"editor"
],
"Bencemac": [
"global-rollbacker",
"global-renamer",
"vrt-permissions"
],
"Benjamin J. Burger": [
"editor"
],
"Benjamin.doe": [
"editor"
],
"Benrattray": [
"editor"
],
"Benson Muite": [
"editor"
],
"Bentbracke": [
"editor"
],
"Bequw": [
"editor"
],
"Bert Niehaus": [
"autoreview"
],
"BethNaught": [
"editor"
],
"Beuc": [
"editor"
],
"Bhardwaj Anil": [
"autoreview"
],
"BiT": [
"editor"
],
"Bigdelboy": [
"transwiki"
],
"Bignose~enwikibooks": [
"editor"
],
"Billinghurst": [
"global-rollbacker",
"editor"
],
"Billymac00": [
"editor"
],
"Biplab Anand": [
"global-rollbacker",
"global-sysop"
],
"Birdofadozentides": [
"editor"
],
"BitterAsianMan": [
"editor"
],
"Blua lago": [
"global-renamer"
],
"Bluefoxicy": [
"editor"
],
"Bluerasberry": [
"vrt-permissions"
],
"BobChan2": [
"editor"
],
"Bodhisattwa": [
"vrt-permissions"
],
"BoldLuis": [
"editor"
],
"Borhan": [
"global-rollbacker",
"vrt-permissions"
],
"Boris1951zz": [
"editor"
],
"Bpenn005": [
"editor"
],
"Brewster239": [
"global-rollbacker"
],
"Bridget": [
"global-rollbacker",
"editor"
],
"Brienna.Hall77": [
"editor"
],
"Brim": [
"editor"
],
"Brittanys": [
"editor"
],
"Bronwynh": [
"editor"
],
"Bsadowski1": [
"editor",
"steward"
],
"Buddpaul": [
"editor"
],
"Bullercruz1": [
"editor"
],
"Buncic": [
"editor"
],
"Bunnypranav": [
"global-renamer"
],
"BurakD53": [
"editor"
],
"Burkep": [
"editor"
],
"ByGrace": [
"editor"
],
"Bykim2012": [
"editor"
],
"C1203sc": [
"editor"
],
"CJakes1": [
"editor"
],
"CKWG - Ada Magica": [
"editor"
],
"Cabayi": [
"global-renamer"
],
"CaitlinCarbury": [
"autoreview"
],
"CalciumTetraoxide": [
"editor"
],
"CalendulaAsteraceae": [
"editor"
],
"Caliburn": [
"editor"
],
"CallumPoole": [
"editor"
],
"Calvin.Andrus": [
"editor"
],
"Cameron11598": [
"editor"
],
"Camouflaged Mirage": [
"editor"
],
"Captain-tucker": [
"vrt-permissions"
],
"Carlo.milanesi": [
"editor"
],
"Caro de Segeda": [
"editor"
],
"CarsracBot": [
"editor"
],
"Catermark": [
"editor"
],
"Cecila123": [
"autoreview"
],
"Cedar101": [
"editor"
],
"Champion": [
"editor"
],
"Chaojidage": [
"editor"
],
"Chaojoker": [
"editor"
],
"Chaotic Enby": [
"autoreview",
"global-renamer"
],
"Chapka": [
"editor"
],
"Charidri": [
"editor"
],
"Charleneabeana": [
"autoreview"
],
"CharlesHoffman": [
"editor"
],
"Chazz": [
"editor"
],
"Chelseafan528": [
"editor"
],
"Cheryl2012": [
"editor"
],
"Chescargot": [
"vrt-permissions"
],
"Chi Sigma": [
"editor"
],
"Chinmayee Mishra": [
"ombuds"
],
"Chongkian": [
"editor"
],
"Chowbok": [
"editor"
],
"ChrisHodgesUK": [
"editor"
],
"ChrisWallace": [
"editor"
],
"Chriswaterguy": [
"editor"
],
"Chuckhoffmann": [
"editor"
],
"Church of emacs": [
"global-rollbacker"
],
"Cic": [
"editor"
],
"Ciell": [
"vrt-permissions"
],
"Cilantrohead": [
"editor"
],
"Cintilo": [
"editor"
],
"Circuit dreamer": [
"editor"
],
"Circuit-fantasist": [
"editor"
],
"Civvì": [
"global-rollbacker",
"global-renamer"
],
"Ckwalker": [
"editor"
],
"Clairerusselll": [
"autoreview"
],
"Cloidl": [
"autoreview"
],
"Cmsmcq": [
"editor"
],
"Cnrowley": [
"editor"
],
"CocoaZen": [
"editor"
],
"CoconutOctopus": [
"global-renamer"
],
"Codename Noreste": [
"sysop",
"global-rollbacker",
"interface-admin"
],
"Codename Noroeste": [
"editor"
],
"Codinghead": [
"editor"
],
"CommonsDelinker": [
"autoreview"
],
"Comp.arch": [
"editor"
],
"Conan": [
"editor"
],
"Cormullion": [
"editor"
],
"Count Count": [
"steward"
],
"Coupe": [
"editor"
],
"Courcelles": [
"global-rollbacker",
"editor"
],
"CptViraj": [
"global-rollbacker",
"global-renamer",
"global-sysop"
],
"Craignewland": [
"editor"
],
"Craxd1": [
"editor"
],
"CrazyEddy": [
"editor"
],
"Cremastra": [
"editor"
],
"Cremastra (JWB)": [
"autoreview"
],
"Cromium": [
"editor"
],
"Cromwellt": [
"editor"
],
"Crystal East": [
"editor"
],
"Cttcraig": [
"editor"
],
"Cultures17": [
"editor"
],
"Cultures33": [
"editor"
],
"Cultures4": [
"editor"
],
"Cultures92": [
"editor"
],
"CunninghamJohn": [
"autoreview"
],
"Curtaintoad": [
"editor"
],
"Cyberpower678": [
"global-rollbacker"
],
"Céréales Killer": [
"global-renamer"
],
"D1n05aur5 4ever": [
"editor"
],
"DARIO SEVERI": [
"autoreview",
"global-rollbacker",
"global-sysop"
],
"DC Slagel": [
"editor"
],
"DCB": [
"vrt-permissions"
],
"DD 8630": [
"editor"
],
"DGerman": [
"editor"
],
"DVD206": [
"editor"
],
"DZadventiste": [
"editor"
],
"DaB.": [
"vrt-permissions"
],
"DaGizza": [
"editor"
],
"Dagana4": [
"autoreview"
],
"Dallas1278": [
"editor"
],
"Dan Koehl": [
"editor"
],
"Dan Polansky": [
"editor"
],
"Dan-aka-jack": [
"editor"
],
"DanCherek": [
"autoreview"
],
"Danarwaller": [
"editor"
],
"DanielWhernchend": [
"editor"
],
"Danielravennest": [
"editor"
],
"Danilka5469": [
"editor"
],
"Daniuu": [
"steward",
"vrt-permissions"
],
"DannyS712": [
"editor"
],
"Darklama": [
"editor"
],
"Darklilac": [
"editor"
],
"Darrelljon": [
"editor"
],
"DarwIn": [
"vrt-permissions"
],
"Dave Braunschweig": [
"editor"
],
"David L Davis": [
"editor"
],
"DavidCary": [
"editor"
],
"DavidLevinson": [
"editor"
],
"Davidbena": [
"editor"
],
"Dayshade": [
"editor"
],
"Dchmelik": [
"editor"
],
"Dcljr": [
"editor"
],
"Dcondon": [
"editor"
],
"Deepfriedokra": [
"global-renamer"
],
"DejaVu": [
"global-rollbacker",
"global-renamer"
],
"DennisDaniels": [
"editor"
],
"Dennisblu": [
"uploader"
],
"Denniss": [
"editor"
],
"DerHexer": [
"editor",
"steward",
"vrt-permissions"
],
"Derek Andrews": [
"editor"
],
"Designermadsen": [
"editor"
],
"Deu": [
"global-rollbacker"
],
"Dexxor": [
"editor"
],
"Dezedien": [
"vrt-permissions"
],
"Diandramartin": [
"autoreview"
],
"Didym": [
"vrt-permissions"
],
"Dino Bronto Rex": [
"editor"
],
"Dirk Hünniger": [
"editor"
],
"Divinations": [
"global-rollbacker"
],
"Djb": [
"editor"
],
"Djbrown": [
"editor"
],
"Dlrohrer2003": [
"editor"
],
"Dmccreary": [
"editor"
],
"Doc Taxon": [
"vrt-permissions"
],
"Doctorxgc": [
"editor"
],
"Dom walden": [
"editor"
],
"Domdomegg": [
"editor"
],
"DominikTurner": [
"autoreview"
],
"DonaldKronos": [
"editor"
],
"DoubleGrazing": [
"global-renamer"
],
"Doubleotoo": [
"editor"
],
"Downdate": [
"editor"
],
"Dr-Taher": [
"global-renamer"
],
"Dr.Unclear": [
"editor"
],
"DreamRimmer": [
"global-renamer",
"global-sysop"
],
"Dreftymac": [
"editor"
],
"Drpundir": [
"editor"
],
"Drummingman": [
"global-rollbacker",
"global-renamer",
"vrt-permissions"
],
"DuLithgow": [
"editor"
],
"Dungodung": [
"vrt-permissions"
],
"Duplode": [
"editor"
],
"DustDFG": [
"editor"
],
"Dyolf77": [
"vrt-permissions"
],
"EDCU320RHT": [
"editor"
],
"EDUC320 Sylvialiang": [
"editor"
],
"EE JRW": [
"editor"
],
"EMAD KAYYAM": [
"editor"
],
"EPIC": [
"steward"
],
"EarlGrey2005": [
"autoreview"
],
"Ebe123": [
"editor"
],
"Ecarew": [
"editor"
],
"Edgar181": [
"editor"
],
"Edit filter": [
"sysop"
],
"EdoDodo": [
"editor"
],
"Edornbush": [
"editor"
],
"Edriiic": [
"editor"
],
"Efex": [
"editor"
],
"Efex3": [
"editor"
],
"Effeietsanders": [
"editor",
"vrt-permissions"
],
"EggRoll97": [
"editor"
],
"Egil": [
"editor"
],
"Eihel": [
"global-rollbacker",
"editor"
],
"Ejs-80": [
"global-renamer"
],
"Ekaroleski": [
"editor"
],
"Elaurier": [
"editor"
],
"Elcobbola": [
"vrt-permissions"
],
"Electro": [
"editor"
],
"ElfSnail123": [
"editor"
],
"Eli bubo4ka": [
"editor"
],
"Eliarani": [
"editor"
],
"Elli": [
"global-renamer",
"vrt-permissions"
],
"Ellywa": [
"vrt-permissions"
],
"Elmacenderesi": [
"vrt-permissions"
],
"Elton": [
"editor",
"steward"
],
"Emha": [
"vrt-permissions"
],
"EmilymDaniel": [
"autoreview"
],
"Empire3131": [
"editor"
],
"Encik Tekateki": [
"editor"
],
"Enzomartinelli": [
"editor"
],
"Eric Evers": [
"editor"
],
"Erigena": [
"editor"
],
"Erik Baas": [
"editor"
],
"ErinNik": [
"editor"
],
"Erinamukuta": [
"editor"
],
"ErrantX": [
"editor"
],
"EruannoVG": [
"editor"
],
"Espen180": [
"editor"
],
"Eta Carinae": [
"global-renamer"
],
"Ethacke1": [
"editor"
],
"Eumolpo": [
"editor"
],
"Euphydryas": [
"global-renamer"
],
"Eurodyne": [
"editor"
],
"EvDawg93": [
"editor"
],
"EvanCarroll": [
"editor"
],
"Ewen": [
"editor"
],
"Exusiai": [
"global-renamer"
],
"Ezarate": [
"global-rollbacker",
"vrt-permissions"
],
"Fabartus": [
"editor",
"uploader"
],
"Faendalimas": [
"ombuds"
],
"Fasten": [
"editor"
],
"Faster than Thunder": [
"editor"
],
"Fathoms Below": [
"global-renamer"
],
"Fcorthay": [
"editor"
],
"Fdena": [
"editor"
],
"Federhalter": [
"editor"
],
"Fehufanga": [
"global-rollbacker",
"global-sysop"
],
"Fekarp": [
"editor"
],
"Fephisto": [
"editor"
],
"Ferien": [
"global-rollbacker"
],
"Fernando2812l": [
"editor"
],
"Fernly": [
"editor"
],
"Ffion B Thompson": [
"autoreview"
],
"Fimatic": [
"editor"
],
"FischX": [
"editor"
],
"Fishpi": [
"editor"
],
"Flattail": [
"editor"
],
"FlightTime": [
"global-renamer"
],
"Flolit": [
"editor"
],
"Fluffernutter": [
"vrt-permissions"
],
"FlyingAce": [
"global-rollbacker"
],
"Fountain Pen": [
"editor"
],
"Fr33kman": [
"editor"
],
"FrancisFromGaspesie": [
"editor"
],
"Frantsch": [
"autoreview"
],
"Fredericknortje": [
"editor"
],
"Fritzlein~enwikibooks": [
"editor"
],
"Frozen Wind": [
"transwiki",
"editor"
],
"Ftaljaard": [
"editor"
],
"Ftiercel": [
"editor"
],
"Furrykef": [
"editor"
],
"GKFX": [
"editor"
],
"Galahad": [
"global-rollbacker"
],
"Gampe": [
"vrt-permissions"
],
"Ganímedes": [
"vrt-permissions"
],
"Gary Dorman Wiggins": [
"editor",
"uploader"
],
"Garygaryj": [
"editor"
],
"Gat lombard": [
"editor"
],
"Gc211": [
"editor"
],
"Geagea": [
"vrt-permissions"
],
"Geekgirl": [
"editor"
],
"GemmaCampbell": [
"autoreview"
],
"Geoff Plourde": [
"editor"
],
"Geofferybard": [
"transwiki",
"editor"
],
"GerbenRienk": [
"editor"
],
"Gerges": [
"global-renamer"
],
"Germany Poul Ah": [
"editor"
],
"Gertbuschmann": [
"editor"
],
"Ggee0621": [
"editor"
],
"Gifnk dlm 2020": [
"editor",
"uploader"
],
"Girdi": [
"editor"
],
"Glaisher": [
"editor"
],
"Glane23": [
"vrt-permissions"
],
"Gleb713": [
"autoreview"
],
"Glich": [
"editor"
],
"Gllyons": [
"editor"
],
"Gmasterman": [
"editor"
],
"GoblinInventor": [
"editor"
],
"Good afternoon": [
"editor"
],
"GoreyCat": [
"editor"
],
"GorgeUbuasha": [
"editor"
],
"GorillaWarfare": [
"vrt-permissions"
],
"Gott wisst": [
"editor"
],
"Goulart": [
"editor"
],
"Gpkp": [
"editor"
],
"Gracebaysinger": [
"editor"
],
"Graeme E. Smith": [
"editor"
],
"Greatswrd": [
"editor"
],
"GreenC": [
"editor"
],
"Greenbreen": [
"editor"
],
"Greenman": [
"editor"
],
"GregXenon01": [
"editor"
],
"Gretski247": [
"editor"
],
"GreyCat": [
"editor"
],
"Grin": [
"vrt-permissions"
],
"Growl41": [
"editor"
],
"Guaka": [
"editor"
],
"Guanaco": [
"editor"
],
"GuillermoHazebrouck": [
"editor"
],
"Guus": [
"editor"
],
"Guy vandegrift": [
"editor"
],
"Guywan": [
"editor"
],
"Gzuufy": [
"editor"
],
"HLand": [
"editor"
],
"HYanWong": [
"editor"
],
"Ha98574": [
"editor"
],
"Hagindaz": [
"editor"
],
"HakanIST": [
"editor",
"steward"
],
"Hamish": [
"global-rollbacker",
"vrt-permissions"
],
"Hanay": [
"vrt-permissions"
],
"Hannes Röst": [
"editor"
],
"Hans Adler": [
"editor"
],
"Haoreima": [
"editor"
],
"Happy-melon": [
"editor"
],
"Harry Wood": [
"editor"
],
"Harrybrowne1986": [
"editor"
],
"Harv4": [
"editor"
],
"Hasley": [
"editor"
],
"Hazard-SJ": [
"global-rollbacker"
],
"He7d3r": [
"editor"
],
"HenkvD": [
"editor"
],
"Herbythyme": [
"editor"
],
"Hercule": [
"editor"
],
"Herman darman": [
"editor"
],
"HerrHartmuth": [
"editor"
],
"Hethrir": [
"editor"
],
"HgDeviasse": [
"editor"
],
"Hippias": [
"editor"
],
"Hliow": [
"autoreview"
],
"Holder": [
"global-rollbacker",
"global-sysop"
],
"Holdoffhunger": [
"editor"
],
"Hoo man": [
"editor",
"steward"
],
"HouseBlaster": [
"global-renamer"
],
"Howard Beale": [
"editor"
],
"Hpon": [
"editor"
],
"Hrkalona": [
"autoreview"
],
"Hskeet": [
"editor",
"uploader"
],
"Htm": [
"vrt-permissions"
],
"Hugetim": [
"editor"
],
"Humaira Ali": [
"editor"
],
"Huntertur": [
"editor"
],
"Hydriz": [
"global-rollbacker"
],
"Ibidthewriter": [
"editor"
],
"Ibrahim Sani Mustapha": [
"editor"
],
"Ibrahim.ID": [
"global-renamer",
"vrt-permissions"
],
"Icetruck": [
"editor"
],
"Icodense": [
"global-rollbacker"
],
"Idavidmiller": [
"editor"
],
"Ideasman42": [
"editor"
],
"Igna": [
"editor"
],
"Ijon": [
"vrt-permissions"
],
"Illusional": [
"editor"
],
"Iluvatar": [
"global-rollbacker",
"vrt-permissions"
],
"Indiana": [
"editor"
],
"Inductiveload": [
"editor"
],
"Inertia6084": [
"autoreview"
],
"Inferno986return": [
"editor"
],
"Infinite0694": [
"global-rollbacker",
"global-sysop"
],
"Ingolemo": [
"editor"
],
"Insignificantwrangler": [
"editor"
],
"Internoob": [
"transwiki",
"editor"
],
"InverseHypercube": [
"editor"
],
"Isenhand": [
"editor"
],
"Ish ishwar": [
"editor"
],
"Iste Praetor": [
"editor"
],
"ItsNyoty": [
"vrt-permissions"
],
"Itsmeyash31": [
"autoreview"
],
"Itswikisam": [
"editor"
],
"Itti": [
"global-renamer",
"vrt-permissions"
],
"Ixfd64": [
"editor"
],
"J ansari": [
"global-rollbacker",
"global-renamer"
],
"J.palacios.jean": [
"editor"
],
"J36miles": [
"editor"
],
"JBW": [
"global-renamer"
],
"JCrue": [
"editor"
],
"JJ12880": [
"editor"
],
"JJMC89": [
"vrt-permissions"
],
"JJPMaster": [
"sysop",
"global-rollbacker",
"global-renamer",
"interface-admin",
"vrt-permissions"
],
"JJPMaster (test 1)": [
"autoreview"
],
"JJohnson": [
"editor"
],
"JJohnson1701": [
"editor"
],
"JPPINTO": [
"editor"
],
"Jack Frost": [
"vrt-permissions"
],
"JackBot": [
"editor"
],
"JackPotte": [
"sysop",
"interface-admin"
],
"Jackhand1": [
"autoreview"
],
"Jacob J. Walker": [
"editor"
],
"Jafeluv": [
"global-rollbacker",
"editor"
],
"Jake Park": [
"global-renamer"
],
"Jakec": [
"editor"
],
"JamesCrook": [
"editor"
],
"JamesNZ": [
"editor"
],
"Jamesofur": [
"global-rollbacker"
],
"Jamesssss": [
"editor"
],
"Jamzze": [
"editor"
],
"Jan Myšák": [
"global-rollbacker"
],
"Jan.duggan": [
"autoreview"
],
"Janbery": [
"global-rollbacker",
"vrt-permissions"
],
"Janpha": [
"editor"
],
"Janschejbal": [
"editor"
],
"Jason.Cozens": [
"editor"
],
"Jaspalkaler": [
"editor"
],
"Jasper Deng": [
"global-rollbacker"
],
"JavaHurricane": [
"global-rollbacker",
"editor"
],
"Javier Carro": [
"editor"
],
"JavierCantero": [
"editor"
],
"Jay Bolero": [
"editor"
],
"Jazzmanian": [
"editor"
],
"Jcb": [
"editor",
"vrt-permissions"
],
"Jcwf": [
"editor"
],
"Jeff G.": [
"global-rollbacker",
"editor"
],
"Jeff1138": [
"editor"
],
"Jellysandwich0": [
"editor"
],
"JenVan": [
"editor"
],
"JenniferPalacios": [
"editor"
],
"Jenniferjkidd": [
"editor"
],
"Jens Østergaard Petersen": [
"editor"
],
"JeremyMcCracken": [
"editor"
],
"Jeroenr": [
"editor"
],
"Jerome Charles Potts": [
"editor"
],
"Jerry vlntn": [
"editor"
],
"Jesdisciple": [
"editor"
],
"Jfmantis": [
"editor"
],
"Jianhui67": [
"global-rollbacker",
"editor"
],
"Jianhui67 public": [
"editor"
],
"Jim Ashby": [
"autoreview"
],
"JimKillock": [
"editor"
],
"Jimbotyson": [
"editor"
],
"Jimmy Xu": [
"vrt-permissions"
],
"Jkauf007": [
"editor"
],
"Jmdeschamps": [
"uploader"
],
"Jnanaranjan sahu": [
"ombuds"
],
"Jnewh001": [
"editor"
],
"Jobin RV": [
"editor"
],
"Joewiz": [
"editor"
],
"Johannes Bo": [
"editor"
],
"Johannnes89": [
"steward"
],
"John Cross": [
"editor"
],
"JohnMarcelo": [
"editor"
],
"Johnkn63": [
"editor"
],
"Johnwhelan": [
"editor"
],
"Jokes Free4Me": [
"editor"
],
"Jomegat": [
"editor"
],
"Jon Harald Søby": [
"vrt-permissions"
],
"Jon Kolbert": [
"steward",
"vrt-permissions"
],
"Jonathan Webley": [
"editor"
],
"Jordan Brown": [
"editor"
],
"JorisvS": [
"editor"
],
"Josve05a": [
"vrt-permissions"
],
"Jrincayc": [
"editor"
],
"Jsnaree": [
"editor"
],
"Jtneill": [
"editor"
],
"JuethoBot": [
"autoreview"
],
"Jugandi": [
"editor"
],
"Jules*": [
"global-renamer"
],
"Juliancolton": [
"global-rollbacker",
"editor"
],
"Jumark27": [
"editor"
],
"JustTheFacts33": [
"editor"
],
"Justlettersandnumbers": [
"global-renamer",
"vrt-permissions"
],
"K6ka": [
"global-rollbacker",
"global-renamer"
],
"Kadı": [
"global-renamer",
"vrt-permissions"
],
"Kai Burghardt": [
"editor"
],
"Kaltenmeyer": [
"editor"
],
"Kambai Akau": [
"editor"
],
"Kanjy": [
"global-rollbacker",
"editor"
],
"Kapooht": [
"editor"
],
"Karl Wick": [
"editor"
],
"Karosent": [
"editor"
],
"Kashkhan": [
"editor"
],
"Kathryn Mary Nicholson": [
"autoreview"
],
"Katiemgeorge": [
"editor"
],
"Katyauchter": [
"editor"
],
"Kaushlendratripathi": [
"editor"
],
"Kaw8yh": [
"editor"
],
"Kayau": [
"transwiki",
"editor"
],
"Kellen": [
"editor"
],
"Kelti": [
"editor"
],
"Kiefer.Wolfowitz": [
"editor"
],
"Killarnee": [
"editor"
],
"King of Hearts": [
"vrt-permissions"
],
"Kingaustin07": [
"editor"
],
"Kingofnuthin": [
"editor"
],
"Kirito": [
"global-rollbacker",
"editor"
],
"Kittycataclysm": [
"sysop"
],
"Kj cheetham": [
"global-renamer"
],
"Kkmurray": [
"editor"
],
"Kl-robertson": [
"editor"
],
"Klaas van Buiten": [
"editor"
],
"Knittedbees": [
"transwiki",
"editor"
],
"Knoppson": [
"autoreview"
],
"Koantum": [
"editor"
],
"Koavf": [
"global-rollbacker",
"editor"
],
"Kodos": [
"editor"
],
"KonstantinaG07": [
"editor",
"steward"
],
"Kowey": [
"editor"
],
"KrakatoaKatie": [
"vrt-permissions"
],
"Krd": [
"vrt-permissions"
],
"Krdbot": [
"vrt-permissions"
],
"Kri": [
"editor"
],
"Krinkle": [
"global-rollbacker"
],
"Kropotkine 113": [
"vrt-permissions"
],
"Kruusamägi": [
"vrt-permissions"
],
"Ktucker": [
"editor"
],
"Kwamikagami": [
"editor"
],
"Kwhitefoot": [
"editor"
],
"Kylu": [
"editor"
],
"Kızıl": [
"global-renamer"
],
"L10nM4st3r": [
"editor"
],
"LABoyd2": [
"editor"
],
"LR0725": [
"global-rollbacker",
"global-sysop"
],
"Ladislav": [
"editor"
],
"Ladsgroup": [
"global-renamer"
],
"Ladybug62": [
"editor"
],
"Lagoset": [
"editor"
],
"Larsnooden": [
"editor"
],
"Laurianedani": [
"editor"
],
"Lcraw005": [
"editor"
],
"Ldo": [
"editor"
],
"Leaderboard": [
"sysop",
"global-renamer",
"interface-admin"
],
"Learnerktm": [
"editor"
],
"Lechatjaune": [
"vrt-permissions"
],
"Leighblackall": [
"editor"
],
"Lengel46": [
"editor"
],
"Lentokonefani": [
"global-renamer"
],
"LeoChiukl": [
"editor"
],
"Leonard64": [
"uploader"
],
"Leonidlednev": [
"autoreview",
"global-rollbacker"
],
"Leovanderven": [
"editor"
],
"Lesless": [
"vrt-permissions"
],
"Leyo": [
"global-rollbacker"
],
"Lgriot": [
"editor"
],
"Liam987": [
"editor"
],
"Liao": [
"editor"
],
"Libperry": [
"editor"
],
"Limiza": [
"editor"
],
"Lionel Cristiano": [
"editor"
],
"Litlok": [
"global-renamer"
],
"Little Sunshine": [
"global-renamer"
],
"Llakew": [
"editor"
],
"LlamaAl": [
"editor"
],
"Lobsteroh": [
"editor"
],
"LodestarChariot2": [
"editor"
],
"Lofty abyss": [
"global-rollbacker",
"editor",
"vrt-permissions"
],
"Logictheo": [
"editor"
],
"Lomita": [
"vrt-permissions"
],
"Londonjackbooks": [
"editor"
],
"Lovepeacejoy404": [
"editor"
],
"Lp0 on fire": [
"autoreview"
],
"Lubaochuan": [
"editor"
],
"Luckas Blade": [
"editor"
],
"Lucystewpid": [
"autoreview"
],
"Ludovic Brenta": [
"editor"
],
"Ludovicocaldara": [
"editor",
"uploader"
],
"Lukas²³": [
"editor"
],
"LukeCEL": [
"editor"
],
"Lvova": [
"vrt-permissions"
],
"Lwill031": [
"editor"
],
"M7": [
"steward"
],
"MARKELLOS": [
"vrt-permissions"
],
"MBq": [
"global-renamer"
],
"MF-Warburg": [
"global-rollbacker",
"global-sysop",
"editor"
],
"MGA73": [
"vrt-permissions"
],
"MIacono": [
"editor"
],
"MNeuschaefer": [
"editor"
],
"MS Sakib": [
"global-renamer",
"vrt-permissions"
],
"Mabdul": [
"transwiki",
"editor",
"uploader"
],
"Madisonhen": [
"autoreview"
],
"Magda.dagda": [
"editor"
],
"Magnus Manske": [
"editor"
],
"Mahagaja": [
"editor"
],
"MaikoM93": [
"editor"
],
"Maire": [
"global-renamer"
],
"Malarz pl": [
"global-renamer"
],
"Manchiu": [
"global-renamer"
],
"MandoRachovitsa": [
"autoreview"
],
"Mandy Hopkins": [
"editor"
],
"ManuelGR": [
"editor"
],
"MarcGarver": [
"sysop",
"checkuser",
"steward"
],
"Marco Klunder": [
"editor"
],
"MarcoAurelio": [
"editor"
],
"Marcus Cyron": [
"vrt-permissions"
],
"Mardus": [
"editor"
],
"MarkJFernandes": [
"editor"
],
"MarkTraceur": [
"editor"
],
"Markcwm": [
"editor"
],
"Markhobley": [
"editor"
],
"MarsRover": [
"editor"
],
"Marshman~enwikibooks": [
"editor"
],
"Martin Kraus": [
"editor"
],
"Martin Sauter": [
"editor"
],
"Martin Urbanec": [
"editor",
"steward",
"vrt-permissions"
],
"MartinPoulter": [
"editor"
],
"Martinwguy2": [
"editor"
],
"MarygoldRules": [
"editor"
],
"Master tongue": [
"editor"
],
"Masti": [
"steward",
"vrt-permissions"
],
"Math buff": [
"editor"
],
"MathXplore": [
"global-rollbacker",
"editor"
],
"Mathildem16": [
"autoreview"
],
"Mathmensch": [
"editor"
],
"Mathmensch-Smalledits": [
"editor"
],
"Mathmogeek": [
"editor"
],
"Maths314": [
"editor"
],
"Matiia": [
"editor"
],
"Matrix": [
"autoreview",
"vrt-permissions"
],
"Matsievsky": [
"editor"
],
"Mattb112885": [
"editor"
],
"Mattbarton.exe": [
"editor"
],
"Matthewrb": [
"vrt-permissions"
],
"Matttest": [
"autoreview"
],
"Max Milas": [
"editor"
],
"Maxim": [
"editor"
],
"Maximillion Pegasus": [
"global-rollbacker",
"editor"
],
"Maxint2": [
"editor"
],
"Mazbel": [
"global-rollbacker"
],
"Mbch331": [
"vrt-permissions"
],
"Mbrickn": [
"transwiki",
"editor"
],
"Mcdonnkm": [
"editor"
],
"Mcld": [
"editor"
],
"Mdkoch84": [
"editor"
],
"Mdmckenzie": [
"editor"
],
"MdsShakil": [
"steward",
"vrt-permissions"
],
"Mdupont": [
"editor"
],
"Me Lendroz": [
"editor"
],
"Meanmicio": [
"editor"
],
"Mecanismo": [
"editor"
],
"MediaKyle": [
"editor"
],
"Meditation": [
"editor"
],
"Meev0": [
"editor"
],
"Mehman": [
"ombuds",
"vrt-permissions"
],
"Melos": [
"steward",
"vrt-permissions"
],
"MemicznyJanusz": [
"global-renamer"
],
"Mendelivia~enwikibooks": [
"editor"
],
"Meniktah": [
"editor"
],
"Mercy": [
"global-rollbacker",
"editor"
],
"MerlLinkBot": [
"editor"
],
"Mfield": [
"global-renamer"
],
"Mh7kJ": [
"editor"
],
"Michael Romanov": [
"editor"
],
"MichaelFrey": [
"editor"
],
"Michaelbluett": [
"editor",
"uploader"
],
"Mido": [
"vrt-permissions"
],
"MihalOrela": [
"editor"
],
"MiiCii": [
"editor"
],
"Mike Hayes": [
"editor"
],
"Mike.lifeguard": [
"editor"
],
"Mild Bill Hiccup": [
"editor"
],
"Mill3315": [
"editor"
],
"Millbart": [
"vrt-permissions"
],
"Mimarx": [
"editor"
],
"Min1996": [
"autoreview"
],
"Minorax": [
"global-rollbacker",
"global-sysop",
"editor"
],
"Mirinano": [
"global-rollbacker"
],
"Mithridates": [
"editor"
],
"Mjbt": [
"editor"
],
"Mjchael": [
"editor"
],
"Mjkaye": [
"editor"
],
"Mkline": [
"autoreview"
],
"Mlipl001": [
"editor"
],
"Moby-Dick4000": [
"editor"
],
"Mohean": [
"editor"
],
"Money-lover-12345": [
"editor"
],
"Moonriddengirl": [
"autoreview",
"vrt-permissions"
],
"Mortense": [
"editor"
],
"Mpfau": [
"editor"
],
"Mr. Stradivarius": [
"editor"
],
"MrAlanKoh": [
"editor"
],
"MrJaroslavik": [
"global-rollbacker",
"ombuds"
],
"Mrajcok": [
"editor"
],
"Mrjulesd": [
"editor"
],
"Mrwojo": [
"editor"
],
"Mschrag": [
"editor"
],
"Msmithma": [
"editor"
],
"MtPenguinMonster": [
"editor"
],
"Mtarch11": [
"global-rollbacker",
"global-sysop",
"editor"
],
"Musical Inquisit": [
"editor"
],
"Mussklprozz": [
"vrt-permissions"
],
"Mvolz": [
"editor"
],
"Mwtoews": [
"editor"
],
"Mxn": [
"editor"
],
"Myklaw": [
"editor"
],
"Mykola7": [
"steward"
],
"Mys 721tx": [
"global-renamer",
"vrt-permissions"
],
"NDG": [
"global-rollbacker"
],
"Nadzik": [
"global-rollbacker",
"global-renamer"
],
"NahidSultan": [
"vrt-permissions"
],
"Nangkhan Magar": [
"editor"
],
"Natuur12": [
"vrt-permissions"
],
"Nbarth": [
"editor"
],
"Nbro": [
"editor"
],
"Nehaoua": [
"ombuds"
],
"Neils51": [
"editor"
],
"Nemoralis": [
"vrt-permissions"
],
"Neojacob": [
"editor"
],
"Neriah": [
"global-rollbacker",
"global-renamer"
],
"Nesbit": [
"editor"
],
"Newlisp": [
"editor"
],
"Nfgdayton": [
"editor"
],
"NguoiDungKhongDinhDanh": [
"global-rollbacker",
"editor"
],
"NhacNy2412": [
"global-renamer"
],
"Nick.anderegg": [
"editor"
],
"NickPenguin": [
"editor"
],
"NicoScribe": [
"editor"
],
"Nicole Sharp": [
"editor"
],
"Nieuwsgierige Gebruiker": [
"editor"
],
"Nigos": [
"autoreview"
],
"Nihonjoe": [
"global-renamer"
],
"Nikai": [
"editor"
],
"Ninjastrikers": [
"vrt-permissions"
],
"NipplesMeCool": [
"editor"
],
"Njardarlogar": [
"editor"
],
"Nobody60": [
"editor"
],
"Nolispanmo": [
"vrt-permissions"
],
"Nomstuff": [
"autoreview"
],
"Nonenmac": [
"editor"
],
"Norton": [
"editor"
],
"Npettiaux": [
"editor"
],
"Nsaa": [
"vrt-permissions"
],
"Nthep": [
"vrt-permissions"
],
"NuclearWarfare": [
"global-rollbacker",
"editor"
],
"OMSMike": [
"editor"
],
"Officer781": [
"editor"
],
"Oleander": [
"editor"
],
"Oliviacatherall": [
"autoreview"
],
"Omphalographer": [
"editor"
],
"OnBeyondZebrax": [
"editor"
],
"Onsen": [
"editor"
],
"Ontzak": [
"global-renamer"
],
"Orderud": [
"editor"
],
"OrenBochman": [
"editor"
],
"Oshwah": [
"global-renamer"
],
"Ottawahitech": [
"editor"
],
"Owain.davies": [
"editor"
],
"PAC": [
"editor"
],
"PAC2": [
"editor"
],
"PK 97": [
"editor"
],
"PNW Raven": [
"editor"
],
"Pac8612": [
"editor"
],
"Paloi Sciurala": [
"global-rollbacker"
],
"Panic2k4": [
"transwiki",
"editor"
],
"Pascal Pignard": [
"editor"
],
"Pastbury": [
"editor"
],
"Pathfinders": [
"editor"
],
"Pathoschild": [
"editor"
],
"Patrik": [
"editor"
],
"PauSix": [
"editor"
],
"Paul James": [
"editor"
],
"Pavroo": [
"editor"
],
"PbakerODU": [
"editor"
],
"Pbrower2a": [
"editor"
],
"Pearts": [
"editor"
],
"Peeragogia": [
"editor"
],
"Peri Coleman": [
"editor"
],
"Perl~enwikibooks": [
"editor"
],
"Peter1180": [
"editor"
],
"PeterEasthope": [
"editor"
],
"Peyton09": [
"editor"
],
"Phan M. Nhat": [
"autoreview"
],
"PhilKnight": [
"global-renamer"
],
"Phoebe": [
"editor"
],
"Phosgram": [
"editor"
],
"Pi zero": [
"editor"
],
"PieWriter": [
"editor"
],
"Piotrus": [
"editor"
],
"Pithikos": [
"editor"
],
"Pittsburgh Poet": [
"editor"
],
"Pjpearce": [
"editor"
],
"Pkkao": [
"editor"
],
"Planotse": [
"editor"
],
"Platonides": [
"vrt-permissions"
],
"Pluke": [
"editor"
],
"PlyrStar93": [
"global-rollbacker",
"editor"
],
"Pminh141": [
"global-renamer"
],
"Pmlineditor": [
"editor"
],
"Pmw57": [
"editor"
],
"Poetcsw": [
"editor"
],
"PoizonMyst": [
"editor"
],
"Pola 2607": [
"autoreview"
],
"Polimerek": [
"vrt-permissions"
],
"Polluks": [
"editor"
],
"Pookiyama": [
"editor"
],
"Popski": [
"editor"
],
"Povigna": [
"editor"
],
"Ppolar bear": [
"global-rollbacker",
"global-renamer"
],
"Pppery": [
"autoreview"
],
"Prahlad balaji": [
"editor"
],
"Pratyeka": [
"editor"
],
"Praxidicae": [
"global-rollbacker",
"global-sysop",
"editor"
],
"Primefac": [
"vrt-permissions"
],
"Prince Kassad~enwikibooks": [
"editor"
],
"Pronesto": [
"editor"
],
"Prototyperspective": [
"autoreview"
],
"Psoup": [
"editor"
],
"Psr1909": [
"editor"
],
"PullUpYourSocks": [
"editor"
],
"PurpleBuffalo": [
"global-renamer"
],
"PurplePieman": [
"editor"
],
"Purplebackpack89": [
"editor"
],
"Putukas01": [
"editor"
],
"Qenalcu": [
"autoreview"
],
"Quebecguy": [
"global-rollbacker"
],
"QueerEcofeminist": [
"global-rollbacker",
"global-renamer",
"editor"
],
"Quinlan83": [
"global-rollbacker",
"editor"
],
"Quintucket": [
"editor"
],
"Qwerty number1": [
"editor"
],
"Qwertyus": [
"editor"
],
"Qədir": [
"global-rollbacker",
"global-renamer",
"vrt-permissions"
],
"R. Henrik Nilsson": [
"editor"
],
"RAdimer-WMF": [
"global-rollbacker"
],
"RDBury": [
"editor"
],
"RJHall": [
"editor"
],
"Ra'ike": [
"vrt-permissions"
],
"Rachboots": [
"editor"
],
"Rachel": [
"editor"
],
"Rachmat04": [
"global-renamer",
"vrt-permissions"
],
"RadiX": [
"editor",
"steward",
"vrt-permissions"
],
"Raffaela Kunz": [
"editor"
],
"Rahulkepapa": [
"editor"
],
"Ramac": [
"editor"
],
"Rambam rashi": [
"editor"
],
"Randykitty": [
"autoreview",
"global-rollbacker"
],
"RatónMístico176": [
"editor"
],
"Ravichandar84": [
"editor"
],
"Rawheatley": [
"editor"
],
"Ray Trygstad": [
"editor"
],
"RayeChellMahela": [
"editor"
],
"Raymond": [
"vrt-permissions"
],
"Razr Nation": [
"editor"
],
"Rchaswms01": [
"editor"
],
"Rcragun": [
"editor",
"uploader"
],
"Readyokaygo": [
"editor"
],
"Recent Runes": [
"editor"
],
"Redlentil": [
"editor"
],
"Refcanimm": [
"editor"
],
"Regasterios": [
"vrt-permissions"
],
"Reinhard Kraasch": [
"vrt-permissions"
],
"RenaissanceMan2144": [
"autoreview"
],
"Renamed user 242094acfb1a5b2f08e9e78f2e021a40": [
"editor"
],
"Renamed user 5f91ca71739b07cfce8397eed758fe13": [
"editor",
"uploader"
],
"Renamed user f26394dcb19bd7bdad78f0d752896653": [
"editor"
],
"Renvoy": [
"global-rollbacker",
"global-sysop"
],
"Reseletti": [
"editor"
],
"Retropunk": [
"editor"
],
"Reuben1508": [
"autoreview"
],
"Revi C.": [
"global-rollbacker",
"global-renamer",
"ombuds",
"editor",
"vrt-permissions"
],
"Reyk": [
"editor"
],
"Rfc1394": [
"editor"
],
"Rgdboer": [
"editor"
],
"Rgreenone": [
"editor"
],
"Rhole2001": [
"autoreview"
],
"Rich Farmbrough": [
"editor"
],
"Rickstambaugh": [
"editor"
],
"Riggwelter": [
"vrt-permissions"
],
"Risk": [
"editor"
],
"Risteall": [
"editor"
],
"Ritjesman": [
"editor"
],
"RoMancer": [
"editor"
],
"Robbiemorrison": [
"editor"
],
"Robert Huber~enwikibooks": [
"editor"
],
"Roberto Mura": [
"editor"
],
"Robertsky": [
"global-renamer",
"vrt-permissions"
],
"RobinH": [
"editor"
],
"Rodasmith": [
"editor"
],
"Rodrigo": [
"editor"
],
"Rodrigo.Argenton": [
"vrt-permissions"
],
"Rogerborrell": [
"editor"
],
"Rogerdpack": [
"editor"
],
"RogueScholar": [
"editor"
],
"Romainbehar": [
"editor"
],
"RomaineBot": [
"vrt-permissions"
],
"RonaldB": [
"vrt-permissions"
],
"Rosser1954": [
"editor"
],
"Rotlink": [
"editor"
],
"RoySmith": [
"ombuds"
],
"Rozzychan": [
"editor"
],
"Rplano": [
"editor"
],
"Rreagan007": [
"autoreview"
],
"Rrgreen": [
"editor"
],
"Rschen7754": [
"global-rollbacker",
"editor"
],
"RshieldsVA": [
"editor"
],
"Rsjaffe": [
"global-renamer"
],
"Rtaisis": [
"editor"
],
"Ruakh": [
"editor"
],
"Rudolpho~enwikibooks": [
"editor"
],
"Runfellow": [
"editor"
],
"Runner4lyfe": [
"editor"
],
"RunningBlind": [
"editor"
],
"Ruthven": [
"vrt-permissions"
],
"Ruud Koot": [
"transwiki",
"editor"
],
"Rzuwig": [
"autoreview",
"global-rollbacker"
],
"S8321414": [
"global-renamer"
],
"SB Johnny": [
"editor"
],
"SCP-2000": [
"global-rollbacker",
"global-renamer",
"vrt-permissions"
],
"SHB2000": [
"sysop",
"steward"
],
"SPM": [
"editor"
],
"Sae1962": [
"editor"
],
"Safuan12616": [
"editor"
],
"SahniM": [
"editor"
],
"Sakretsu": [
"steward"
],
"Sakura emad": [
"global-rollbacker"
],
"Salil Kumar Mukherjee": [
"editor"
],
"Samat": [
"vrt-permissions"
],
"Sammy2012": [
"editor"
],
"Samuel.dellit": [
"editor"
],
"Samuele2002": [
"global-rollbacker",
"editor"
],
"Samwilson": [
"editor"
],
"SanBonne": [
"global-renamer",
"vrt-permissions"
],
"Sandbergja": [
"editor"
],
"Sannita": [
"vrt-permissions"
],
"Sante Caserio~enwikibooks": [
"editor"
],
"SarahFatimaK": [
"editor"
],
"Sargoth": [
"vrt-permissions"
],
"Saroj": [
"global-rollbacker"
],
"Sascha Lill 95": [
"editor"
],
"Satdeep Gill": [
"vrt-permissions"
],
"Savh": [
"global-rollbacker",
"editor"
],
"Sbb1413": [
"editor"
],
"Scention": [
"editor"
],
"Schniggendiller": [
"steward"
],
"SchreiberBike": [
"editor"
],
"Scott.beckman": [
"editor"
],
"Sebastian Wallroth": [
"vrt-permissions"
],
"Seewolf": [
"global-rollbacker",
"vrt-permissions"
],
"Selden": [
"editor"
],
"Sennecaster": [
"vrt-permissions"
],
"Serinap": [
"editor"
],
"Seth Miller": [
"editor"
],
"SevenSpheres": [
"editor"
],
"Sfan00 IMG": [
"editor"
],
"Sfoerster": [
"editor"
],
"Sgarrigan": [
"editor"
],
"Sgowal": [
"editor"
],
"Shaitand": [
"editor"
],
"ShakespeareFan00": [
"editor"
],
"SharingNotes": [
"editor"
],
"Shawntanchinyang": [
"editor"
],
"Shdwninja8": [
"editor"
],
"ShelleyAdams": [
"autoreview"
],
"ShifaYT": [
"global-rollbacker"
],
"Shii": [
"editor"
],
"Shira the Mogul": [
"editor"
],
"Shlomif": [
"editor"
],
"ShuBraque": [
"editor"
],
"Sidelight12": [
"editor"
],
"Sidorkin": [
"editor"
],
"Sidpatil": [
"editor"
],
"Siebengang": [
"editor"
],
"Sigma 7": [
"editor"
],
"Simon Peter Hughes": [
"editor"
],
"Sinus46": [
"editor"
],
"Sir Beluga": [
"editor"
],
"Sir Lestaty de Lioncourt": [
"vrt-permissions"
],
"SixWingedSeraph": [
"editor"
],
"Sj": [
"editor"
],
"Sjc~enwikibooks": [
"editor"
],
"Sjlegg": [
"editor"
],
"Sjone101": [
"editor"
],
"Sjö": [
"global-rollbacker"
],
"Skymath": [
"editor"
],
"Slava Ukraini Heroyam Slava 123": [
"editor",
"uploader"
],
"Slava Ukrajini Heroyam Slava": [
"editor"
],
"Sluffs": [
"editor"
],
"Smjg": [
"editor"
],
"SnappyDragonPennyroyal": [
"editor"
],
"SocialKnowledge": [
"editor"
],
"SoftwareEngineerMoose": [
"autoreview"
],
"Sonia": [
"editor"
],
"Sophie Cheng": [
"editor"
],
"Sotiale": [
"steward"
],
"Soul windsurfer": [
"editor"
],
"SouthParkFan65": [
"editor"
],
"SoylentGreen": [
"editor"
],
"Spamduck": [
"editor"
],
"Spaynton": [
"editor"
],
"Spender2001": [
"editor"
],
"Speregrination": [
"editor"
],
"Spiderworm": [
"editor"
],
"Spoon!": [
"editor"
],
"Squasher": [
"global-renamer"
],
"Srhat": [
"editor"
],
"Stang": [
"global-rollbacker",
"editor",
"vrt-permissions"
],
"Stanglavine": [
"editor"
],
"Steinsplitter": [
"global-renamer",
"vrt-permissions"
],
"StephT0704": [
"autoreview"
],
"Stepheng3": [
"editor"
],
"Stepro": [
"vrt-permissions"
],
"Steve M": [
"editor"
],
"Stilfehler": [
"editor"
],
"Stockywood": [
"editor"
],
"Storeye": [
"editor"
],
"Strainu": [
"vrt-permissions"
],
"Strange quark": [
"editor"
],
"Stryn": [
"global-rollbacker",
"editor"
],
"Stïnger": [
"global-rollbacker",
"editor"
],
"Suchenwi": [
"editor"
],
"Sumone10154": [
"editor"
],
"SunCreator": [
"editor"
],
"Sunny Cryolite": [
"global-rollbacker"
],
"Sunshineconnelly": [
"editor"
],
"SuperTyphoonNoru": [
"editor"
],
"Superbass": [
"vrt-permissions"
],
"Superpes15": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"vrt-permissions"
],
"Supertoff": [
"vrt-permissions"
],
"Superzerocool": [
"vrt-permissions"
],
"SupremeUmanu": [
"editor"
],
"Suruena": [
"editor"
],
"Sutambe": [
"editor"
],
"Sutton Publishing": [
"editor"
],
"Sué González Hauck": [
"editor"
],
"Svartava": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"editor"
],
"SweetCanadianMullet": [
"editor"
],
"Swift": [
"editor"
],
"SyG": [
"editor"
],
"Sylvesterchukwu04": [
"editor"
],
"Sylvialim": [
"editor"
],
"Sylviaread": [
"editor"
],
"Synoman Barris": [
"global-rollbacker",
"transwiki",
"editor"
],
"Syum90": [
"global-rollbacker",
"editor"
],
"Syunsyunminmin": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"editor"
],
"T.seppelt": [
"editor"
],
"TDang": [
"editor"
],
"TTWIDEE": [
"editor"
],
"Tahmid": [
"editor"
],
"Taiwania Justo": [
"vrt-permissions"
],
"Taketa": [
"global-renamer"
],
"Takipoint123": [
"vrt-permissions"
],
"TakuyaMurata": [
"editor"
],
"Tamzin": [
"global-renamer"
],
"Tanbiruzzaman": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"editor",
"vrt-permissions"
],
"Tannertsf": [
"editor"
],
"Taoheedah": [
"editor"
],
"Tapsevarg": [
"editor"
],
"TaronjaSatsuma": [
"vrt-permissions"
],
"Taxman": [
"editor"
],
"Tchoř": [
"global-renamer"
],
"Tdkehoe": [
"editor"
],
"Tdvorak": [
"editor"
],
"Techman224": [
"editor"
],
"Tegel": [
"editor",
"steward"
],
"Teles": [
"ombuds",
"steward",
"vrt-permissions"
],
"Tem5psu": [
"editor"
],
"Tempodivalse": [
"editor"
],
"TenWhile6": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"editor"
],
"Tenshi Hinanawi": [
"global-rollbacker"
],
"Terence Kearey": [
"editor"
],
"Ternarius": [
"global-renamer"
],
"Ternera": [
"global-rollbacker",
"global-renamer",
"global-sysop",
"editor"
],
"Tesleemah": [
"editor"
],
"Tevfik AKTUĞLU": [
"editor"
],
"Tgregtregretgtr": [
"editor"
],
"ThatBPengineer": [
"autoreview"
],
"Thatonewikiguy": [
"editor"
],
"The Squirrel Conspiracy": [
"vrt-permissions"
],
"The labs": [
"editor"
],
"TheGoodEndedHappily": [
"vrt-permissions"
],
"ThePCKid": [
"editor"
],
"TheSandDoctor": [
"global-renamer",
"vrt-permissions"
],
"Theknightwho": [
"editor"
],
"Thenub314": [
"editor"
],
"Theo Hughes": [
"editor"
],
"Theornamentalist": [
"editor"
],
"Thereen": [
"editor"
],
"Thewinster": [
"editor"
],
"Thierry Dugnolle": [
"editor"
],
"Thinkglobalnow": [
"editor"
],
"Thirunavukkarasye-Raveendran": [
"editor"
],
"Thomas Simpson": [
"editor"
],
"Thomas.haslwanter": [
"editor"
],
"Thomas.lochmatter": [
"editor"
],
"Tibetologist": [
"editor"
],
"Tigerzeng": [
"global-rollbacker"
],
"Tiled": [
"editor"
],
"TimBorgNetzWerk": [
"editor"
],
"Timothy Gu": [
"editor"
],
"Timpo": [
"editor"
],
"Tiptoety": [
"editor"
],
"Tjyang": [
"editor"
],
"Tlustulimu": [
"editor"
],
"Tmvogel": [
"editor"
],
"Tom Morris": [
"editor"
],
"Tomato86": [
"editor"
],
"Tomt87": [
"editor"
],
"Tomybrz": [
"editor"
],
"Tonyvall": [
"autoreview"
],
"Tp42": [
"editor"
],
"Tracklayingninja": [
"editor"
],
"Tradimus": [
"editor"
],
"Tropicalkitty": [
"global-rollbacker",
"editor"
],
"TrulyShruti": [
"editor"
],
"Ts12rAc": [
"global-rollbacker"
],
"Tsarina CatarinaToo": [
"autoreview"
],
"TunnelESON": [
"sysop"
],
"Turbojet": [
"vrt-permissions"
],
"Turkmen": [
"editor"
],
"TwoThirty": [
"editor"
],
"Tyoyafud": [
"editor"
],
"Túrelio": [
"autoreview"
],
"U$3rname008": [
"editor"
],
"USSR-Slav": [
"global-rollbacker"
],
"Uf.hun2201": [
"editor"
],
"Ulubatli Hasan": [
"global-renamer"
],
"Uncitoyen": [
"global-rollbacker",
"global-renamer"
],
"Uncle G": [
"editor"
],
"Unixxx": [
"editor"
],
"User01938": [
"editor"
],
"Username222": [
"editor"
],
"Utcursch": [
"vrt-permissions"
],
"Uziel302": [
"editor"
],
"Uzume": [
"editor"
],
"VIGNERON": [
"steward"
],
"Valery Starikov": [
"editor"
],
"Van der Hoorn": [
"editor"
],
"Varnent": [
"vrt-permissions"
],
"Vdolar": [
"autoreview"
],
"VectorVoyager": [
"editor"
],
"Venzz": [
"vrt-permissions"
],
"Verfassungsfreund": [
"editor"
],
"Veritas Sapientiae": [
"global-rollbacker",
"global-renamer",
"vrt-permissions"
],
"Vermont": [
"editor",
"steward",
"vrt-permissions"
],
"Victor Stefan Stoica": [
"autoreview"
],
"Victor Trevor": [
"autoreview"
],
"Victoria.sandeman": [
"autoreview"
],
"Vincent Vega": [
"global-renamer"
],
"Vito Genovese": [
"editor"
],
"Vituzzu": [
"editor"
],
"Vladimir Solovjev": [
"global-renamer",
"vrt-permissions"
],
"Vogone": [
"global-rollbacker",
"editor"
],
"Vossman": [
"editor"
],
"Vrinda": [
"editor"
],
"VulcanWikiEdit": [
"editor"
],
"Vwanweb": [
"editor"
],
"WOSlinker": [
"autoreview"
],
"Waihorace": [
"global-rollbacker"
],
"Waldyrious": [
"editor"
],
"WalshDay": [
"editor"
],
"Wargo": [
"editor"
],
"Wbjimmyd": [
"editor"
],
"Wcoole": [
"editor"
],
"WeelkyWikiReader": [
"editor"
],
"Wekeepwhatwekill": [
"autoreview"
],
"WereSpielChequers": [
"editor"
],
"What no2000": [
"editor"
],
"WhatamIdoing": [
"editor"
],
"WhitePhosphorus": [
"global-rollbacker",
"global-sysop"
],
"Whiteknight": [
"editor"
],
"Whoop whoop pull up": [
"editor"
],
"Whym": [
"editor",
"vrt-permissions"
],
"Wiki13": [
"editor"
],
"WikiBayer": [
"global-rollbacker",
"global-sysop",
"editor"
],
"WikiFer": [
"vrt-permissions"
],
"Wikimi-dhiann": [
"editor"
],
"Wikiotics": [
"editor"
],
"Wikiwau": [
"autoreview",
"editor"
],
"WillNess": [
"editor"
],
"Willscrlt": [
"editor"
],
"Wim b": [
"global-rollbacker",
"global-sysop",
"editor"
],
"Wisden": [
"editor"
],
"Withinfocus": [
"editor"
],
"Wj32": [
"editor"
],
"Wkee4ager": [
"editor"
],
"Wobbit": [
"editor"
],
"Wojciech Pędzich": [
"vrt-permissions"
],
"Wong128hk": [
"global-renamer"
],
"Wooze": [
"global-rollbacker"
],
"Wundermacht": [
"editor"
],
"Wutsje": [
"global-rollbacker",
"editor"
],
"Ww2censor": [
"vrt-permissions"
],
"Wüstenspringmaus": [
"global-rollbacker",
"global-renamer"
],
"XXBlackburnXx": [
"editor",
"steward"
],
"Xandradi": [
"editor"
],
"Xania": [
"sysop",
"checkuser"
],
"Xaosflux": [
"editor",
"steward"
],
"XenonX3": [
"vrt-permissions"
],
"Xerol": [
"editor"
],
"Xeverything11": [
"editor",
"uploader"
],
"Xhungab": [
"editor"
],
"Xinkai Wu": [
"editor"
],
"Xixtas": [
"editor"
],
"Xqt": [
"global-rollbacker"
],
"Xxagile": [
"editor"
],
"Xypron": [
"editor"
],
"Xz64": [
"editor"
],
"Y-S.Ko": [
"editor"
],
"YMS": [
"editor"
],
"Yahya": [
"steward",
"vrt-permissions"
],
"Yamla": [
"global-renamer"
],
"Yann": [
"editor"
],
"Yerpo": [
"global-renamer",
"vrt-permissions"
],
"Yikrazuul": [
"editor"
],
"Ymblanter": [
"global-rollbacker"
],
"Yndesai": [
"editor"
],
"Youssefsan": [
"editor"
],
"Ysangkok": [
"editor"
],
"Yvelik": [
"uploader"
],
"Yzmo": [
"editor"
],
"ZI Jony": [
"editor"
],
"Zabe": [
"global-rollbacker"
],
"Zafer": [
"ombuds"
],
"Zedshort": [
"editor"
],
"ZeroOne": [
"editor"
],
"Zetud": [
"global-rollbacker",
"vrt-permissions"
],
"Ziv": [
"editor"
],
"Zoeannl": [
"editor"
],
"Zollerriia": [
"editor"
],
"Zoohouse": [
"editor"
],
"Zoot": [
"editor"
],
"Zsohl": [
"autoreview",
"editor"
],
"Zvsmith": [
"editor"
],
"Zweighaft": [
"editor"
],
"ZxxZxxZ": [
"editor"
],
"~riley": [
"global-rollbacker",
"editor"
],
"Érico": [
"global-renamer"
],
"Виктор Пинчук": [
"editor"
],
"Воображение": [
"editor"
],
"Всевидящий": [
"global-rollbacker"
],
"Д.Ильин": [
"editor"
],
"Л.П. Джепко": [
"editor"
],
"יהודה שמחה ולדמן": [
"editor"
],
"מקף": [
"global-rollbacker",
"global-renamer"
],
"د. فارس الجويلي": [
"global-renamer"
],
"علاء": [
"steward",
"vrt-permissions"
],
"فيصل": [
"global-renamer",
"vrt-permissions"
],
"सीमा1": [
"editor"
],
"タチコマ robot": [
"editor"
],
"ネイ": [
"global-renamer"
],
"人间百态": [
"global-rollbacker"
],
"臺灣象象": [
"autoreview"
],
"范": [
"vrt-permissions"
],
"青子守歌": [
"vrt-permissions"
],
"魔琴": [
"global-rollbacker"
],
"ꠢꠣꠍꠘ ꠞꠣꠎꠣ": [
"editor"
],
"기나ㅏㄴ": [
"global-rollbacker",
"global-renamer"
]
}
qy53eqbj498y8yf5uyz45vqcs3cx89y
User:Codename Noreste/sandbox
2
475738
4640444
4636685
2026-06-16T13:46:51Z
Codename Noreste
3441010
Test.
4640444
wikitext
text/x-wiki
amazon.com is a test
rgzmvs933f2b0qadqxe98sxhaor15oj
General Literary Chinese from Scratch
0
481710
4640443
4638866
2026-06-16T13:23:01Z
Shira the Mogul
3560559
/* Unit 18: Buddhist Literature */
4640443
wikitext
text/x-wiki
__notoc__
Welcome to the Wikibook for Literary Chinese (Known as 漢文 "Han Language" in East Asia or 文言 "Literary Language" in China), aimed at individuals hoping to gain a general knowledge of it before progressing into genres they wish to be acquainted with.
This is not the [[Classical Chinese]] textbook, which is aimed at Chinese Zhou-Qin era texts. This text aims to shed light on post-Zhou-Qin texts across East Asia, which mimic those texts. However, as Zhou-Qin era texts served as the main body from which individuals learned, they are employed here as and when they are considered necessary or otherwise useful. It does so through a "buffet" approach, showering you, the reader, with an ocean of texts of myriad genre.
==Table of Contents==
=== Front matter ===
* [[/Introduction/]]
* [[/Appendices/]]
=== Useful resources ===
These are quick grab-bags that can be useful for vocabulary-building.
* [[/Antonym List/]] <!--- 文/武,大/小,厚/薄,橫/縱...--->
* [[/Collocation Groups/]] <!--- e.g. 四象,三靈…… --->
* [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等 Yan Fu's Qing-era translations for modern terms] <!--- Wikiversity has this (https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等) and the below, I will effectively be translating a lot of it! --->
* [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/上古語考輯 Communicative Terms]
<!--- this will be translated eventually, but right now it's bad to just leave this here. --->
=== Useful primers ===
Across history, many primers have been made for teaching Literary Chinese to children. These are a few that are recommended for use alongside this work, ideally in flashcards.
* [https://www.fdgwz.org.cn/Web/Show/11308 倉頡篇] - Cangjie's Chapters, the earliest one. It is extant, but incomplete. It contains several rare characters, and so if used, I would personally recommend doing so later, or out of interest.
* 三字經 - The Three Character Classic, an excellent piece for Confucian education. Pair with 弟子规 for best results.
** 三字經(太平天國版)- For Christians, there is a version made by Hong Xiuquan from the Taiping Rebellion. Despite the context, it is a legitimately useful primer and can be used to self-teach for the Delegate's Edition of the Christian Bible.
* 千字文 - The Thousand Character Classic, a remarkable piece of constrained writing that only uses each character once. Amazing for building vocabulary whilst seeing historical allusions and the like.
* 五字鑑 - The Five-Character Mirror, essentially the 24 Histories of China compressed into a primer. Uses 5-character couplets, the longest in this list.
* 龍文鞭影 - The Shadow of Longwen's Whip, a historical allusion trainer. Best paired with a context piece.
===Unit 0: The Han script===
This unit is intended for those with no familiarity of the Han script. It will prepare you for the units ahead, teaching largely pictographic characters.
By the end of this unit, students will:
* Recognise around 50 characters.
* Understand how characters are composed and how this gives them meaning.
* Have a basic idea of how to handwrite and/or type characters using the Cangjie Input Method.
* Know some bare basics of Literary Chinese grammar (e.g. Basic word order, where adjectives go, lack of "is", 有...)
Lessons:
# [[/An Introduction to the Han Script/]]
# [[/People, Big and Small/]]
# [[/How do we write Chinese?/]]
# [[/What are Chinese characters, anyway?/]]
# [[/The Sun, the Moon, and the Five Elements/]]
# [[/Getting Familiar with Body Parts/]]
# [[/Using Numbers and Using Weapons/]] <!--- 竹戈十大中一弓廿卜--->
# [[/Tilling the Fields with 有/]] <!--- 山田 --->
# [[/How Characters are Made/]] <!--- teach 難 and 重, plus the compound ideograms, phono-semantic compounds, and semantic compounds --->
# [[/Cangjie Created Characters/]] <!--- Get people to use Cangjie --->
# [[/The Kangxi Radical System/]] <!--- Introduce some monoradical texts to train recognition. --->
# [[/How do we read Chinese?/]] <!--- Deploy one of my monosyllabic poems and inductively teach phono-semantic compounds. --->
# [[/Word Training with Kiyohara no Sanemoto/]]
<!---
字訓詩·清原真友·平安時代
禾失曾知秩,中心豈忘忠。里魚穿浪鯉,江鳥度秋鴻。
火盡仍為燼,山高自作嵩。色絲辭不絕,凡虫泣寒風。
--->
===Unit 1: Basic Skills===
This unit is intended for those with minimal familiarity with the Han script and no familiarity with Literary Chinese. There is a focus on simple structures, skills for dissecting common textual structures, and short-form poetry in this unit.
Before starting this unit, students should:
* Recognise around ~30 characters.
* Can use Cangjie input.
* Have given Unit 0 a cursory glance.
<br>
By the end of this unit, students will:
* Recognise around ~100 characters.
* Comprehend numbers, the Heavenly Stems, and the Earthly Branches, and be able to use them to quantify time and date.
* Intuit the basic topic -> comment idea behind Literary Chinese. "This, it is..."
* Understand basic function words such as 也, 而, 有, and 謂.
Lessons:
# [[/The All-Purpose 也/]]
# [[/An Introduction to Chinese Numbers/]] <!--- It is hard to find authentic materials for this --->
# [[/One, Two, Left, and Right with Gongsun Long/]]
<!---
曰:「二有一乎?」
曰:「二無一。」
曰:「二有右乎?」
曰:「二無右。」
曰:「二有左乎?」
曰:「二無左。」
曰:「右可謂二乎?」
曰:「不可。」
曰:「左可謂二乎?」
曰:「不可。」
曰:「左與右可謂二乎?」
曰:「可。」
--->
# [[/The Heavenly Stems/]] <!--- Introduce ordinals, which will be used to demonstrate sentence patterns later. --->
# [[/Tell the Time with Earthly Branches/]] <!--- Introduce verbs and timekeeping --->
# [[/Lunar Dates with the Spring and Autumn Annals/]]
<!--- Vocabulary: 歲,年,朔,月,日,來,前,初,正,春秋夏冬,曆,上,下. Consider including traditional names for months in a list. --->
# [[/Skimming for Major Events in Historical Annals/]]
<!--- Don't simply use Confucius's Chunqiu: We can use texts inspired by it.
E.g. 三國史記 - 十五年京城旱。秋七月,蝗。very few new characters, lots one can use. Instantly able to use.
https://zh.wikisource.org/wiki/%E4%B8%89%E5%9C%8B%E5%8F%B2%E8%A8%98/%E5%8D%B701
Skimming annals is very possible and a very useful skill. Don't skip out on it. Teach students to skim read!!!
--->
# [[/Dinner with the Daimyo/]]
<!--
侍宴·大友皇子
皇明光日月,帝徳載天地。
三才併秦昌,万国表臣義。
-->
# [[/In Discourse with Jibong/]]
<!--
芝峰類說
倭國謂田爲畠。謂水田爲田。火田爲畑。猶我國以水田爲畓也。故官名有畠山殿。地名有畑島云。
-->
# [[/Shinto FAQ with Honda Chikaatsu/]]
<!--- https://wikisource.org/wiki/%E7%9C%9E%E9%81%93%E5%95%8F%E5%B0%8D 眞道問對 本田親徳 really good way of operationalising 乎 and much of the early grammar.
問 天帝無始無終乎。
對 天帝無始無終也。
旣以無始無終之力
與無始無終之體
造無始無終之萬物。
其功亦無始無終也。
問 天地大原在道乎。
對 天地大原實在道。
鬼神依道而立。
人民依道而活。
萬物依道而息。
This is great! --->
<!---
Some cool stuff I saw someone studying from
https://zh.wikisource.org/wiki/%E8%87%B3%E5%B0%8F%E4%B8%98%E8%A5%BF%E5%B0%8F%E7%9F%B3%E6%BD%AD%E8%A8%98#
https://zh.wikisource.org/wiki/%E6%A0%B8%E8%88%9F%E8%A8%98
Could be used for period focus
--->
===Unit 2: An Overview of Sinitic Poetry===
This unit will teach you how Sinitic Poetry operates; - that is, the way individuals in the Sinosphere compose poetry in Literary Chinese. Despite this language's fall out of favour in the past century, this tradition is still remarkably alive and well, and their short length makes them more accessible than elaborate prose. In this unit, you will begin from the ''Classic of Poetry'' before travelling through poems from the Tang dynasty, Singapore, Japan, Vietnam, the Ryukyu Kingdom, and Korea. When introducing poetry, I will furthermore use the language from the nation it is from to show how it is recited by its people.
After discussing the Classic of Poetry, we will also be a small detour into a discussion on Ping-Ze 平仄, the Tang dynasty system of alternating tones, so to produce rhyme on tonal and phonological levels. This had a major impact on Literary Chinese poetry as a whole!
By the end of this Unit, students will:
* Recognise around 120 more characters.
* Be able to explain how Sinitic Poetry rhymes and the themes it contains.
* Be able to use function words such as 在, 無, 不, 聿, and 于/於 in poetic contexts.
* Recognise the switch between 吾/我 in the subject-object positions and demonstrate it in usage.
* (Chinese speakers) Be able to differentiate 于 and 於, and understand the "interest(ed) in" meaning of 好 in most circumstances.
<!---
Summary of the above part about 于 and 於 for other editors:
于 and 於 were distinct words for an extremely long time and were still such to Literary Chinese writers. Their "merging" through Simplified-Traditional Chinese distinctions is a very modern thing. I will summarise their usages here, using Pulleyblank's Outline of Classical Chinese Grammar (2000);
* 于 - This can mean "to go" or "to/at". 黃鳥于飛 "The yellow birds go flying". Must be post-verbal. It can also appear in 至于.
* 於 - This is an all-purpose locative preposition - from "on/at/in" to "from" or even "than" (甲於乙). The implication of motion is not there at all. Must be pre-verbal. It can also appear in 之於 or be an archaic noun for a crow 於 (烏).
--->
Lessons:
# [[/Across the Rivers with Emperor Puliuru Guang/]]
<!---
春江花月夜·楊廣
夜露含花氣,春潭漾月暉。
漢水逢遊女,湘川值二妃。
This is really simple and can elucidate Ping-Ze easily.
--->
# [[/To Study the Odes/]]
<!-- 蟋蟀·姬旦 國風·唐風
蟋蟀在堂,歲聿其莫。今我不樂,日月其除。無已大康,職思其居。好樂無荒,良士瞿瞿。
蟋蟀在堂,歲聿其逝。今我不樂,日月其邁。無已大康,職思其外。好樂無荒,良士蹶蹶。
蟋蟀在堂,役車其休。今我不樂,日月其慆。無已大康,職思其憂。好樂無荒,良士休休。
-->
<!-- 黃鳥 小雅·鴻鴈之什
黃鳥黃鳥,無集于穀,無啄我粟。
此邦之人,不我肯穀。言旋言歸,復我邦族。
黃鳥黃鳥,無集于桑,無啄我粱。
此邦之人,不可與明。言旋言歸,復我諸兄。
黃鳥黃鳥,無集于栩,無啄我黍。
此邦之人,不可與處。言旋言歸,復我諸父。
-->
# [[/A Detour into Orthodox Ping-Ze/]]
<!--- 平 and 仄 are useful characters themselves. Show 仄 in the binomes 反仄,歉仄,逼仄 as it's often difficult to immediately use --->
# [[/The Restraint of Du Fu/]]
# [[/The Longing of Li Bai/]]
# [[/The Environment with Bukha Timur/]]
<!---
西湖竹枝詞·布哈特穆爾
湖上春歸人未歸,桃紅柳緑黄鶯飛。
桃花落時多結子,楊花落處秪沾衣。
宫词·布哈特穆爾
玉樓珠箔晚天涼,秋色依稀滿建章。
金井梧桐霜葉盡,自隨流水出宮牆。
Mongol writer from the Uyghur Kingdom of Gaochang
Spammed Ctrl+F in https://zh.wikisource.org/wiki/%E5%BE%A1%E9%81%B8%E5%9B%9B%E6%9C%9D%E8%A9%A9_(%E5%9B%9B%E5%BA%AB%E5%85%A8%E6%9B%B8%E6%9C%AC)
--->
# [[/Pillow Talk with Guan Yunshi/]]
<!---
紅繡鞋·貫雲石
挨著靠著雲窗同坐,偎著抱著月枕雙歌,聽著數著愁著怕著早四更過。四更過情未足,情未足夜如梭。天哪,更閏一更兒妨甚么!
Uyghur author!
--->
# [[/Buddhist Philosophy with Ngô Chân Lưu and Taisei Shōan/]]
<!-- 元火·吳真流
木中元有火,元火復還生。
若為木無火,鉆燧何有萌。-->
<!-- 杜鵑·大成聖安
夢覚孤床静
杜鵑帯雨飛
一声来近枕
何者不沾衣
-->
# [[/Odes with Mō Taiei and Zheng Chengxun/]]
<!-- 詠松·毛泰永
植體宜千仞,垂陰動百尋。
李膺真烈烈,和嶠自森森。
桃李何堪較,雪霜安得侵。
萬年身不老,種子又成林。
AKA Inoha Seiki 伊野波 盛紀 -->
<!-- 詠班蘭·鄭成勛
南國多芳草,班蘭最有名。
深根將綠茁,長葉亦叢生。
取味迎賓合,入厨任水烹。
可憐經一用,擲棄不留情。
鄭成勛《樵隱詩集》 https://nus.edu.sg/nuslibraries/dsprojects/sg-jiutishi/poem/827 -->
# [[/A Golden Cup and the Fall of a Dynasty with Yan Fu/]]
<!---
鞏金甌·嚴復
鞏金甌,承天幬,民物欣鳧藻,喜同袍。
清時幸遭,真熙皞,帝國蒼穹保。
天高高,海滔滔。
This has music to it, which I think can add a lot. It is also necessary to introduce Yan Fu early given he did translation. --->
# [[/On a Journey with Sa Dula/]]
<!---
無題·薩都剌
為客三年海上洲,故鄉何處瘴雲稠。
數千里外蠻人域,十八灘頭過客舟。
時有山禽呼姓字,或從海鳥作朋儔。
故人珂珮周旋處,紫殿風清十二樓。
https://zh.wikisource.org/wiki/%E7%84%A1%E9%A1%8C_(%E8%96%A9%E9%83%BD%E5%89%8C)
A naturalised Mongol scholar who made a beautiful poem. This'll be a capstone.
--->
<!---
朝中措·襄陽古道灞陵橋
襄陽古道灞陵橋,詩興與秋高。
千古風流人物,一時多少雄豪。
霜清玉塞,雲飛隴首,風落江皋。
夢到鳳凰台上,山圍故國周遭。
北郊晚步
陂水荷凋晚,茅檐燕去涼。
遠林明落景,平麓淡秋光。
群牧歸村巷,孤禽立野航。
自諳閑散樂,園圃意尤長。
Jurchen poet and grandson of Emperor Shizong of Jin. He's a Zen Buddhist, so we'll go back to him later.
--->
===Unit 3: Confucianism and the World===
This is a Confucian-themed unit with a smattering of other items. You will see the odd geography of the past, early linguistic philosophy, and terrifying breakaway states!
By the end of this unit, students should be able to:
* Recognise around 200+ characters.
* Read basic annals and histories with some dictionary assistance, and comprehend 3-character structures reliably.
* Have encountered basic grammatical points such as 之、乎、者、也、而、則、乃、所、以、於、于、與、且、蓋、and 夫.
** 於 and 于 should be distinguishable.
* Survive a text of at least 250 characters and read for gist.
Lessons:
# [[/A Brief Overview of Confucianism/]]
# [[/The Mountains with Yelü Tuyu/]]
<!---
立木海上刻詩 耶律圖欲 / 耶律倍 / 李贊華
小山壓大山,大山全無力。
羞見故鄉人,從此投外國。
--->
# [[/Teaching the Annals in Qi/]] <!-- Gongyang Gao's commentary -->
# [[/Is a White Horse a Horse?/]]<!-- Teach negation with 非 in 公孙龍子 and compare with 不 -->
# [[/The Three Character Classic/]]
# [[/Expressing Filial Conduct with Confucius and Hara Saihin/]]
<!--
次韻杏坪先生
父執有君孤不孤
相依遍接搢紳徒
区区自抱地方寸
杏杏重遊天一隅
羇雁飛鳴迷汝國
家人思夢入江都
如教志業青年遂
世上寧無逐臭夫
-->
# [[/Confucianism and the Environment with Sai On/]]<!-- 木假山記 -->
# [[/In Debate with Mencius/]]
===Unit 4: Women's Writing===
In this unit, women's writing from various areas of China will be explored. This is chiefly targeted at poetry and the themes within; from the feminine voice of the Classic of Poetry to the remonstrance towards the Khitan Emperor Tianzuo of Jin by his Consort Dasese. The role of women in courtly society is to be elucidated here!
# [[/An Unmarried Life with Heo Nansŏrhŏn/]]
<!---
貧女吟
豈是乏容色。工鍼復工織。
少小長寒門。良媒不相識。
夜久織未休。戛戛鳴寒機。
機中一匹練。終作阿誰衣。
手把金翦刀。夜寒十指直。
爲人作嫁衣。年年還獨宿。
--->
# [[/Responding to Lord Trần with Hồ Xuân Hương/]]
<!---
Responding to 陳光靜 Trần Quang Tĩnh
《和陳侯》
愧無才調使人驚,十載風塵貫耳鈴。
已是臨枰知敵手,莫須敲月苦殫精。
為輪為彈隨遭遇,誰鳳誰鶯任賦生。
造物於人何苟惜,明珠休向暗中呈。
莫須 is an important structure to teach here.
--->
# [[/Gaze into the Autumn Night with Taisei Shōan/]]
<!---
秋夜偶成·大成聖安
長天浮爽気,月色興無窮
群犬吠山径,百蟲啼野風
悲秋秋夜永,感古古今同
自是孤窓下,凄然万慮空
--->
# [[/Visiting a Temple with Yu Xuanji/]]
<!---
遊崇真觀南樓覩新及第題名處
雲峰滿目放春晴,歷歷銀鈎指下生。
自恨羅衣掩詩句,擧頭空羨榜中名。
--->
# [[/Remonstrance with Dasese/]]
<!---
https://zh.wikisource.org/wiki/%E8%AB%B7%E8%AB%AB%E6%AD%8C
諷諫歌·大瑟瑟
勿嗟塞上兮暗紅塵。
勿傷多難兮畏夷人。
不如塞奸邪之路兮選取賢臣。
直須臥薪嚐膽兮激壯士之捐身。
可以朝清漠北兮夕枕燕雲。
Dasese (or 萧瑟瑟) was a Khitan consort to Emperor Tianzuo of Liao. She remonstrated him as the Jurchens were beginning to encroach upon the Khitan, and was forced to commit suicide for her remonstrance. Tianzuo would soon pay for his malfeasance.
--->
# [[/The Love Songs of the Odes/]]
<!---
褰裳
子惠思我,褰裳涉溱。子不我思,豈無他人?狂童之狂也且!
子惠思我,褰裳涉洧。子不我思,豈無他士?狂童之狂也且!
柏舟
彼柏舟,在彼中河,髧彼兩髦,實維我儀,之死矢靡它,母也天只,不諒人只。
汎彼柏舟,在彼河側,髧彼兩髦,實維我特,之死矢靡慝,母也天只,不諒人只。
行露
厭浥行露,豈不夙夜,謂行多露。
誰謂雀無角?何以穿我屋?誰謂女無家?何以速我獄?雖速我獄,室家不足。
誰謂鼠無牙?何以穿我墉?誰謂女無家?何以速我訟?雖速我訟,亦不女從。
--->
# [[/Rules for Women with Ban Zhao/]]
<!--- https://zh.wikisource.org/wiki/%E5%A5%B3%E8%AA%A1 --->
# [[/The Tragedy of Cai Wenji/]]
<!---
悲憤詩
〔兩漢〕蔡文姬
漢季失權柄,董卓亂天常。
志欲圖篡弒,先害諸賢良。
逼迫遷舊邦,擁主以自強。
海內興義師,欲共討不祥。
卓眾來東下,金甲耀日光。
平土人脆弱,來兵皆胡羌。
獵野圍城邑,所向悉破亡。
斬截無孑遺,屍骸相撐拒。
馬邊懸男頭,馬後載婦女。
長驅西入關,迥路險且阻。
還顧邈冥冥,肝脾為爛腐。
所略有萬計,不得令屯聚。
或有骨肉俱,欲言不敢語。
失意幾微間,輒言斃降虜。
要當以亭刃,我曹不活汝。
豈復惜性命,不堪其詈罵。
或便加棰杖,毒痛參並下。
旦則號泣行,夜則悲吟坐。
欲死不能得,欲生無一可。
彼蒼者何辜,乃遭此厄禍。
邊荒與華異,人俗少義理。
處所多霜雪,胡風春夏起。
翩翩吹我衣,肅肅入我耳。
感時念父母,哀嘆無窮已。
有客從外來,聞之常歡喜。
迎問其消息,輒復非鄉里。
邂逅徼時願,骨肉來迎己。
己得自解免,當復棄兒子。
天屬綴人心,念別無會期。
存亡永乖隔,不忍與之辭。
兒前抱我頸,問母欲何之。
人言母當去,豈復有還時。
阿母常仁惻,今何更不慈。
我尚未成人,奈何不顧思。
見此崩五內,恍惚生狂痴。
號泣手撫摩,當發復回疑。
兼有同時輩,相送告離別。
慕我獨得歸,哀叫聲摧裂。
馬為立踟躕,車為不轉轍。
觀者皆噓唏,行路亦嗚咽。
去去割情戀,遄征日遐邁。
悠悠三千里,何時復交會。
念我出腹子,匈臆為摧敗。
既至家人盡,又復無中外。
城廓為山林,庭宇生荊艾。
白骨不知誰,縱橫莫覆蓋。
出門無人聲,豺狼號且吠。
煢煢對孤景,怛吒糜肝肺。
登高遠眺望,魂神忽飛逝。
奄若壽命盡,旁人相寬大。
為復強視息,雖生何聊賴。
託命於新人,竭心自勖勵。
流離成鄙賤,常恐復捐廢。
人生幾何時,懷憂終年歲。
--->
===Unit 5: Myths and Legends of East Asia===
<!--- Shanhaijing, Zibuyu... Etc. Zhiguai literature. This aims to provide a counterpoint to what Confucius wouldn't discuss - thus Zibuyu. Going straight into Daoism isn't ideal. --->
# [[/Exploring the World of Mountains and Seas/]]<!-- Structure: 出焉 -->
# [[/Oh, the Qilin!/]] <!--- Even here, the odes can be studied! --->
# [[/Ultimate Justice with Xiezhi/]]
# [[/The Virtue of the Fenghuang/]]
# [[/The Entrapment of Hua Po/]]
# [[/Nüwa Created the World/]]
===Unit 6: Nation Focus - Japan===
# [[/The Inariyama Sword/]]
<!--- short and sweet! --->
# [[/Entering Japan with Takeda Shingen/]]
<!---
便面蘆間有漁·武田信玄
山色水光烟接天,漁翁江上棹蘆辺
丹青若写得勝景,万里風波一釣船
便面半月照梅花·武田信玄
蘆葦清風垂頂絲,窺魚白鷺水生涯
江南記得曾遊夕,似見梨花院落時
島森哲男. (2015). 武田信玄漢詩校釈. 宮城教育大学紀要, 49, 333–352. https://mue.repo.nii.ac.jp/records/440
似 is a really useful thing to teach early on.
--->
# [[/The Oldest Inscription in Japan/]]
<!--- 宇治橋断碑 --->
# [[/Remembering Conflict with Nakajima Noburu/]]
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/6faa4d3e57a24e542db0375894f0ead5503218bb --->
# [[/Shinto Teachings with Honda Chikaatsu/]]
<!--- https://wikisource.org/wiki/%E9%81%93%E4%B9%8B%E5%A4%A7%E5%8E%9F 本田親徳 道之大原 --->
# [[/The Diary of Fujiwara no Teika/]]
<!--- 明月記 --->
# [[/Reading the History of Japan with Prince Toneri/]]
<!--- 日本書記, etc. --->
<!--- # [[/Occupying Taiwan/]] --->
<!--- I have some colonial literature on me that can be used here. --->
===Unit 7: Nation Focus - Korea===
<!--- 三國史記 for sure! --->
<!--- 放蟬賦 by Yi Kyubo --->
<!--- https://zh.wikisource.org/wiki/%E9%A0%A4%E9%BD%8B%E9%81%BA%E7%A8%BF 頤齋遺稿 黃胤錫 Joseon scholar! --->
# [[/An Elegy to the Empress with Choe Ja/]]
<!---
Choe Ja
元德大后輓詞·崔滋(최자)
乾極曾客配,坤儀正體元。
枕前朝聖主,帳底見曾孫。
陰慘俄沉月,屋悲便沒軒。
三韓千古淚,七十九年恩。
--->
# [[/Language Reform with Sejong the Great/]]
<!--- 訓民正音 https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/1ef2b42cc50055affaa5ef39c61b87ed31c34a60 multiple poems and descriptive terms, possibly the best capstone --->
===Unit 8: Christian Literature===
# [[/A Different Three Character Classic with Hong Xiuquan/]]
# [[/Friar Juan Cobo's Veritable Record/]]
<!---
One of few texts from the Philippines that I have ever found!
https://bnedigital.bne.es/bd/en/viewer?id=0160187c-9d9b-4f34-84d6-bc03fd310c69
--->
# [[/The Delegate's Edition/]]
# [[/Nestorian Steles during the Tang/]]
<!--- 大秦景教宣元至本經經幢 and 景教碑 --->
# [[/Hong Xiuquan's Bible/]]
<!--- https://bible.fhl.net/ob/nob.html?book=407 --->
<!--- I don't want to focus too much on Hong Xiuquan here, so look for more material, especially from missionaries. --->
===Unit 9: An Introduction to Daoism===
<!--- And now back to your regularly scheduled Zhuangzi/Laozi/Liezi. But with more interesting stuff. Trust! --->
# [[/Laozi Explains the Dao/]]
<!--- 道可道,非常道。名可名,非常名。無名天地之始;有名萬物之母。故常無欲,以觀其妙;常有欲,以觀其徼。此兩者,同出而異名,同謂之玄。玄之又玄,衆妙之門。I can expect learners to recognise the stuff here. --->
# [[/Qingtan with Xie Daoyun/]]
<!--- 謝道韞; mentioned in the sanzijing. could be good!
《泰山吟·謝道韞》
峩峩東嶽高,秀極衝青天。
巖中間虛宇,寂寞幽以玄。
非工復非匠,雲構發自然。
器象爾何物,遂令我屢遷。
逝將宅斯宇,可以盡天年。
《拟嵇中散咏松诗·謝道韞》
遙望山上松,隆冬不能凋。
願想遊不憩,瞻彼萬仞條。
騰躍未能升,頓足俟王喬。
時哉不我與,大運所飄遙。
--->
# [[/The Doubting Neighbour/]]
# [[/Kuafu Chases the Sun/]]
# [[/The Frog in a Well/]]
# [[/Wu wei with King Hui of Liang/]]
# [[/The Old Man that Moves the Mountains/]]
# [[/Master Zhuang Dreams of Butterflies/]]
<!--- Currently very stereotypical, but there's stuff to work with at least. Need to include those weird Daoist characters among other things. --->
===Unit 10: Nation Focus - Ryukyu Kingdom===
# [[/Historical Annals with Sai On/]] <!--- Kyuko is an easy cop --->
# [[/The Enthronement of Shō Tei/]]
<!---
康熙二十二年封王尚貞敕
皇帝敕諭琉球國中山王世子尚貞:惟爾遠處海隅,虔修職貢;屬在塚嗣,序應承祧。以朝命未膺,罔敢專擅;恪遵典制,奉表請封。朕念爾世守臣節,忠誠可嘉!特遣正使翰林院檢討汪楫、副使內閣中書舍人加一級林麟焻,齎敕封爾為琉球國中山王,並賜爾及妃文幣等物。爾祗承寵眷,懋紹先猷;輯和臣民,慎固封守:用安宗社於苞桑,永作天家之屏翰。欽哉,毋替朕命!故諭。
Teach imperial edicts.
Consider seeing if there's a letter of acceptance from Shō Tei.
Recorded in 琉球國志略
https://ctext.org/wiki.pl?if=en&chapter=966326
--->
# [[/The Twilight of Ryukyu with Shō Ten/]]
<!---
神田酒樓街燈 尚典
酒樓今秋設芳筵,
一望街燈燦燦連。
烟氣引來通柱上,
光爭星月照神田。
--->
# [[/A Trip to Ryukyu with Luo Sen/]] <!--- Pre-Capstone --->
<!---
遐邇貫珍 1854-11 - 日本日記 羅森
https://archive.org/details/HEKC185411/page/n5/mode/1up
A solid description of Ryukyu cultural customs in Volume 11. Absolutely incredible.
日三日火船直向東北而駛出了臺灣之外幾日不見天涯是時北風大作波浪沖天火船亦甚飄蕩而不能立見有沙鷗隨風而逐浪心直駛七日漸見小山而到琉球琉球一國長闊一百七十五里其國城在地球圖緯線赤道之北二十六度十四分經線中華北京偏東十一度二十四分自明以來世封王爵叨列藩籬其處土產不過蔬菜番薯菜油黑糖等類人民束髻大補是穿草履男女粧飾頭上祇插一簪二簪為別故少年之男女瞥目則無異及其壯也皆留鬚髯故街上長鬚之人甚多甲寅正月初一予上岸遊玩見街上兒童甚多分以銅錢各極歡喜人民亦甚謙恭民居間亦貼新春聯于門外但不見有別等繁華之事那霸有寺寺內有園是名家世宦之墳所以石刊刻姓名年號于碑上每日道人打掃供奉生花樹葉于墓前另有人家祖墳與中國之明塚無異峰巒之上樹木多植民房則以蠻石圍墻內以茅草結屋而居佳物椅棹俱無惟以草蓆屈膝而坐對火盆而吹煙民間亦有識中國言語字墨者
不張舖店惟有墟塲男不貿易婦女為之以貨易貨而外方之金銀弗尚焉然而百姓亦甚畏官長飲食亦甚粗粕甘守樸儉不務奢華亦鮮欺詐板門紙窓夜間亦不防竊曾見途中撿物亦能以返原人公門之內冷冷落落並無案牘之煩淳樸之風畧有同于上古之世我等外國之欲買什物須言于官官為代辦正月初六提督被理衛廉士等一班將官布列威嚴與予乘轎至王宮總理大臣尚宏勳為主席布政大夫馬良才為知客享宴甚豐食物多與中國無異宴後各官皆饋有紙扇烟包布帛等項是物雖粗此亦世子之恭敬外國故亞國亦以禮物而返贈之世子王宮離岸三里在于山頂是名守禮將至其宮一路亦有樹木石牌坊宮室亦甚寬大幽雅垣局可觀其處多栽鳳尾草森樹等類以障陰山邊田土樹藝五穀近海沙田水漲之後人收其沙以煎鹽此時明月當圓予覽山川亦足見一方之風景
--->
<!--- 中山世鑑 and so on. Lots of poetry too. --->
===Unit 11: Nation Focus - Singapore===
<!--- National Library of Singapore has a poetry series that's super good! --->
===Unit 12: Literary Chinese in Medicine===
<!--- do not endorse the medical practices discussed in these...make sure to link back to the heavenly stems here as they are associated with specific body parts. --->
# [[/The Books of the Yellow Emperor/]]
<!-- 黃帝内徑 --->
# [[/Deviant Qi with Zhang Congzheng/]]
<!--- https://zh.wikisource.org/wiki/%E5%84%92%E9%96%80%E4%BA%8B%E8%A6%AA --->
# [[/Anatomy with Sugita Genpaku/]]
<!--- 解体新書 --->
# [[/A Lost Wu Medical Text analysed in Japan/]]
<!--- 難經古義 --->
===Unit 13: People Focus - Zhuang peoples===
<!--- https://mooc1.chaoxing.com/mooc-ans/ztnodedetailcontroller/visitnodedetail?courseId=84745403&knowledgeId=84745463&_from_=&_fromV2_=&rtag= 《峤西诗钞》 is also a really good shout. --->
<!--- Basically, there are Zhuang and Tangut peoples who wrote in Literary Chinese, and their inclusion here is to show that even those who made their own scripts would use this tongue. 张鸿翮 imported the character 朴 to describe a bug, for example. --->
# [[/Zhuang poetry with Zhang Honghe/]]
<!--- https://wenyi.gmw.cn/2024-06/25/content_37398911.htm
一是忠实记录了汉诗创作与古壮字交融的文化现象。清代壮族诗人张鸿翮(hé)《大塘谣》(《峤西诗钞》卷二)云:
去了休。去到大塘红蓼洲。红蓼生花,不结子。绿朴生花,毬见毬。
诗中所说“绿朴”,是壮族对柚子的惯称。“柚子”,壮语发音为“bug”。根据《古壮字字典》,其对应的古壮字为“朴(㭪)”。诗人将古壮字运用到汉文诗歌创作中,刻下了明清壮汉文化交相辉映的注脚。
This sort of thing is why Zhuang and Tangut inclusion is important, as they show how flexible Literary Chinese can be. --->
<!---
Possible Jurchen/Khitan focus?
耶律楚材 - Served 窝阔台, 玄風慶會錄 is short and respectable enough to work with.
--->
===Unit 14: People Focus - Tangut peoples===
<!--- 羅福萇 and 羅振玉 wrote studies on Western Xia / Tangut script. Look for poets and stuff. --->
===Unit 15: Literary Chinese in the Military===
<!--- Real Sun Zi hours! 7 Military Classics are an obvious shout, but look for more stuff too. --->
# [[/A Bilingual Stele of the Khitans/]]
<!--- https://wikisource.org/wiki/%E5%A4%A7%E9%87%91%E7%9A%87%E5%BC%9F%E9%83%BD%E7%B5%B1%E7%B6%93%E7%95%A5%E9%83%8E%E5%90%9B%E8%A1%8C%E8%A8%98 --->
# [[/Going to war with Boyan/]]
<!---
Boyan's Poem from the 元史
伯顏,蒙古巴林部人。至元十一年拜中書左丞相,總兵伐宋。官至開府儀同三司,薨贈太師,封淮安王,諡忠武。
《玉堂嘉話》:初,宋未下時,江南謠云:「江南若破,白雁來過。」當時莫喻其意。及宋亡,蓋知指丞相巴延也。
過梅嶺岡留題
馬首經從庾嶺回 【 庾嶺回 七修類稿(乾隆刊本)卷四十六作「嶺島歸」。】 ,王師到處悉平夷。擔頭不帶江南物,只插梅花一兩枝。
《七修類藳》:伯顏下江南,過金陵梅嶺岡詩云云。所以著名,亦有是善。
--->
# [[/An Edict from the Xianbei/]]
<!---
教義詔 楊廣
武有七德,先之以安民。政有六本,興之以教義。高麗高元,虧失藩禮,將欲問罪遼左,恢宣勝略。雖懷伐國,仍事省方。今往涿郡,巡撫民俗。其河北諸郡及山西、山東年九十已上者,版授太守;八十者,授縣令。
--->
# [[/The Suppression of the Kingdom of Dongning/]]
<!---
台灣鄭氏始末
https://ctext.org/wiki.pl?if=en&chapter=139938
Largely a record of wars in Dongning rather than anything about the trade etc, so it fits here.
--->
# [[/The Shunzhi Emperor vs Li Zicheng/]]
<!---
順治帝
告示
逆酋李自成已於通城斃命,各地鄉勇務隨我軍剿殺逆賊殘餘,凡有斬獲逆酋及擒獲逆酋交我軍者,一經驗證,按軍功論級給賞,必以示我朝皇恩浩蕩。
大清順治二年五月二十四日
恩詔
今月何日,為國曆改歲之履端,即為永昌書元之紀念?緬惟我朝民眾,三元肇慶,四始發祥。陳椒酒以飛觴,躋堂介壽;換桃符以獻歲,辟戶書新。翹望德容,河勝額手。今山河如舊,歲序更新;今天下同春,咸頒麗澤。願我朝君臣與萬民同樂,共沐化日光天,方不虛度韶華。
永昌二年新正初一
There's probably better choices here. Review.
--->
# [[/The Art of War/]]
===Unit 16: Nation Focus - Vietnam===
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/cfe6700e01f6fd59616a375d31aa8cd096677be1 this first --->
# [[/Ancestor Veneration with the Descendants of Zhu Xi/]]
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/tree/main/corpus%2F%E8%B6%8A%E5%8D%97%E6%BC%A2%E6%96%87%2Fclean somewhere in here --->
# [[/Spreading Revolutionary Consciousness with Phan Bội Châu and Liang Qichao/]]
<!--- 越南亡國史 Possibly the most important text in Vietnamese history, not even gonna lie. https://zh.wikisource.org/wiki/%E8%B6%8A%E5%8D%97%E4%BA%A1%E5%9C%8B%E5%8F%B2 --->
# [[/Academia in Literary Chinese between East and West/]]
<!--- 南風雜誌 is a massive shout here. Absolutely amazing series. --->
===Unit 17: Historical Annals and Encyclopediae===
<!--- 永樂大典 will teach how to infer from gaps in texts! 《編類》 is an incredibly interesting essay from here that can bring up the odes and Confucius's「思無邪」quote. It can prepare students for the wrath of Qing academia later. --->
# [[/The History of Liao, Jin, and Song with Toqto'a/]] <!--- 脱脱 --->
# [[/Two Years in the Forbidden City with Yu Deling/]] <!--- 清宮禁二年記 https://zh.wikisource.org/wiki/%E6%B8%85%E5%AE%AE%E7%A6%81%E4%BA%8C%E5%B9%B4%E8%A8%98 --->
# [[/Selected Records of the History of the Da Shun/]]
<!--- Fair Use of a 2010 book written in Literary Chinese about the Da Shun dynasty. Limit to 500 characters, if that. Use to encourage recognition of Simplified variants and modern Wenyanwen. --->
# [[/Documenting the World with Terajima/]]
<!--- 和漢三才図会 寺島良安, built off 三才圖會 --->
===Unit 18: Buddhist Literature===
<!--- You would be forgiven for wondering why this is so late, but if you look at many classical Buddhist texts you'll quickly see a ton of loanwords that make it significantly more difficult to read than the average text. Thus, it goes here for now. --->
<!--- Place focus on practical stuff first. Stuff you can and WILL see in Buddhist temples. Stuff Buddhists can take away immediately. Skills-based approach feels strongest here. --->
<!--- Look at Northern Liang and Later Qin literature, as there is a ton of work by translators from India during the 16 kingdoms period, particularly those two. --->
# [[/Dipping your feet in with Wenyan Shu/]]
<!---
華亭
世尊遺法本忘言,教外別傳意已圓。
只履攜將蔥嶺去,不妨來上月明船。
--->
# [[/The Seven Tathagatas/]]
<!---
南無寶勝如來
南無多寶如來
南無妙色身如來
南無廣博身如來
南無離怖畏如來
南無甘露王如來
南無阿彌陀佛
Use to introduce some core vocabulary in repetitive manner.
Useful phrases from my trip to Jing'an Temple
南無本師釋迦牟尼佛 - Pay homage to the root teacher
南無大悲觀世音菩薩 - Pay homage to the goddess of mercy
廣種福田 - widely plant a meritorious field
--->
# [[/Two Buddhist Temples in Shanghai/]]
<!---
留雲禪寺
雲留雲翔領畧幾許禪機此地有雲散天開真如界。
塔內塔外普示無邊圓覺是故曰塔影雙照解脫門。
歲次壬午冬月吉旦。
覺醒敬撰。
楊胡生沐手恭書。
善信印利明敬獻。
--->
<!--- 福慧宝鼎 慧明大和尚 - introduce the Buddhist timekeeping system with 佛歷 around this point.
赤烏古剎
建寺一千七百六十周年紀念
古剎三國建
滬瀆有重玄
石佛音淨現
聖跡顯重元
唐時稱永泰
宋敕名靜安
聖祖留佛闡
仲師移伽藍
元收八景偈
明鑄鐘聲梵
清樹化羅漢
選賢十方讚
佛日普光明
福慧共修善
鼎運昌隆際
轉正法輪緣
歲次丁亥住持慧明監製
--->
# [[/Foreseeing Monkhood with Yi Xing/]]
<!--- 看命一掌金 --->
# [[/A Trip to Western Xia with Zhi Guang and Hui Zhen/]]
<!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%91%AA%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 --->
<!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%92%92%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 --->
# [[/Jizang's Three Discourses/]]
<!--- https://zh.wikisource.org/wiki/%E4%B8%89%E8%AB%96%E7%8E%84%E7%BE%A9 --->
<!---
I saw these texts being quoted and thus should consider them in some capacity.
《般若波羅蜜多心經》
《金剛般若波羅蜜經》
《一切智光明仙人慈心因緣不食肉經》
《妙法蓮華經》
《大般涅槃經》
《大方等大集經》
《大毘盧舍那成佛神變加持經蓮華胎藏悲生曼荼羅廣大成就儀軌供養方便會》/ 胎藏曼荼羅
《佛說救拔焰口餓鬼陀羅尼經》
《雜阿含經》
Look at Japan's 五山文学
--->
===Unit 19: People Focus - Manchu peoples===
# [[/Qing dynasty Poetry with Nara Singde/]]
<!--- 飲水詞 納蘭性德 https://zh.wikisource.org/wiki/Author:%E7%B4%8D%E8%98%AD%E6%80%A7%E5%BE%B7 --->
# [[/Amassing Words with the Kangxi Emperor/]]
<!--- Kangxi Dictionary Abstract - https://zh.wikisource.org/wiki/%E5%BA%B7%E7%86%99%E5%AD%97%E5%85%B8 --->
# [[/Amassing Literature with the Qianlong Emperor/]]
<!--- Siku Quanshu abstract https://zh.wikisource.org/wiki/%E5%9B%9B%E5%BA%AB%E5%85%A8%E6%9B%B8%E7%B8%BD%E7%9B%AE%E6%8F%90%E8%A6%81 --->
<!---
Yongzheng Emperor's Poetry
https://zh.wikisource.org/wiki/Author:%E9%9B%8D%E6%AD%A3%E5%B8%9D
《和碩怡賢親王祭文》
Also include 滿洲國 stuff to show the fall of the Qing and attempts to preserve it through becoming a Japanese puppet state. It is important to show how Literary Chinese can be misused as well. 滿洲國建國宣言 is a good shout, as is 法制 to prepare students who may be interested in Taiwan legal stuff later down the road.
https://zh.wikisource.org/wiki/Category:%E6%BB%BF%E6%B4%B2%E5%9C%8B
--->
# [[/Paintings and Beauty with Puru Aisin-Gioro/]]
<!--- Saw these in Shanghai Museum with some writing, seemed really cool. Teaches another skill. --->
===Unit 20: Qing-RoC Literature===
<!--- many writers here, will be difficult to sift through. Include 四库全書 abstracts and stuff here. --->
# [[/Jewish Refugees in Shanghai/]]
<!--- Show passports, certificates, etc, from the Jewish Refugee Museum, anonymised. --->
# [[/A Literary Chinese Abstract/]]
<!--- Abstracts from siku quanshu, probably want others --->
# [[/Lament with Lu Ruoteng/]]
<!---
《疑猜》盧若騰,東寧國
盟誓變為交質子,春秋戰國風如此;末世上下相疑猜, 更質妻子防逃徙。
此法只可羈庸奴,若遇梟雄術窮矣;妻可再娶子再育, 安能長坐針氈裏。
我贈一法君記存;推心置腹人知恩;眾人畜之眾人報, 幾個國士在君門。
盧若騰撰,陳漢光編輯,《島噫詩》,臺灣文獻叢刊第二四五種(臺北:臺灣銀行經濟研究室,1968年)21頁。
--->
# [[/Common Linguistics Knowledge in the RoC/]]
<!--- 音韻常識 --->
==References used for this page==
* Yang, B. (2016). 文言语法 [Literary Chinese Grammar] (1st ed). 中华书局 [Zhonghua Book Company]. ISBN: 978-7-101-11619-9
* Priestley, K. E., & Shou-jung, C. (1962). China’s Men of Letters, Yesterday and Today. Dragonfly Books.
{{BookCat}}
88ubz9d23x5cph0ross22fn4ufw60sc
4640506
4640443
2026-06-17T11:52:05Z
Shira the Mogul
3560559
/* Unit 18: Buddhist Literature */
4640506
wikitext
text/x-wiki
__notoc__
Welcome to the Wikibook for Literary Chinese (Known as 漢文 "Han Language" in East Asia or 文言 "Literary Language" in China), aimed at individuals hoping to gain a general knowledge of it before progressing into genres they wish to be acquainted with.
This is not the [[Classical Chinese]] textbook, which is aimed at Chinese Zhou-Qin era texts. This text aims to shed light on post-Zhou-Qin texts across East Asia, which mimic those texts. However, as Zhou-Qin era texts served as the main body from which individuals learned, they are employed here as and when they are considered necessary or otherwise useful. It does so through a "buffet" approach, showering you, the reader, with an ocean of texts of myriad genre.
==Table of Contents==
=== Front matter ===
* [[/Introduction/]]
* [[/Appendices/]]
=== Useful resources ===
These are quick grab-bags that can be useful for vocabulary-building.
* [[/Antonym List/]] <!--- 文/武,大/小,厚/薄,橫/縱...--->
* [[/Collocation Groups/]] <!--- e.g. 四象,三靈…… --->
* [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等 Yan Fu's Qing-era translations for modern terms] <!--- Wikiversity has this (https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/嚴譯及部定詞等) and the below, I will effectively be translating a lot of it! --->
* [https://zh.wikiversity.org/wiki/Subject:華製新漢語及中文固有語/上古語考輯 Communicative Terms]
<!--- this will be translated eventually, but right now it's bad to just leave this here. --->
=== Useful primers ===
Across history, many primers have been made for teaching Literary Chinese to children. These are a few that are recommended for use alongside this work, ideally in flashcards.
* [https://www.fdgwz.org.cn/Web/Show/11308 倉頡篇] - Cangjie's Chapters, the earliest one. It is extant, but incomplete. It contains several rare characters, and so if used, I would personally recommend doing so later, or out of interest.
* 三字經 - The Three Character Classic, an excellent piece for Confucian education. Pair with 弟子规 for best results.
** 三字經(太平天國版)- For Christians, there is a version made by Hong Xiuquan from the Taiping Rebellion. Despite the context, it is a legitimately useful primer and can be used to self-teach for the Delegate's Edition of the Christian Bible.
* 千字文 - The Thousand Character Classic, a remarkable piece of constrained writing that only uses each character once. Amazing for building vocabulary whilst seeing historical allusions and the like.
* 五字鑑 - The Five-Character Mirror, essentially the 24 Histories of China compressed into a primer. Uses 5-character couplets, the longest in this list.
* 龍文鞭影 - The Shadow of Longwen's Whip, a historical allusion trainer. Best paired with a context piece.
===Unit 0: The Han script===
This unit is intended for those with no familiarity of the Han script. It will prepare you for the units ahead, teaching largely pictographic characters.
By the end of this unit, students will:
* Recognise around 50 characters.
* Understand how characters are composed and how this gives them meaning.
* Have a basic idea of how to handwrite and/or type characters using the Cangjie Input Method.
* Know some bare basics of Literary Chinese grammar (e.g. Basic word order, where adjectives go, lack of "is", 有...)
Lessons:
# [[/An Introduction to the Han Script/]]
# [[/People, Big and Small/]]
# [[/How do we write Chinese?/]]
# [[/What are Chinese characters, anyway?/]]
# [[/The Sun, the Moon, and the Five Elements/]]
# [[/Getting Familiar with Body Parts/]]
# [[/Using Numbers and Using Weapons/]] <!--- 竹戈十大中一弓廿卜--->
# [[/Tilling the Fields with 有/]] <!--- 山田 --->
# [[/How Characters are Made/]] <!--- teach 難 and 重, plus the compound ideograms, phono-semantic compounds, and semantic compounds --->
# [[/Cangjie Created Characters/]] <!--- Get people to use Cangjie --->
# [[/The Kangxi Radical System/]] <!--- Introduce some monoradical texts to train recognition. --->
# [[/How do we read Chinese?/]] <!--- Deploy one of my monosyllabic poems and inductively teach phono-semantic compounds. --->
# [[/Word Training with Kiyohara no Sanemoto/]]
<!---
字訓詩·清原真友·平安時代
禾失曾知秩,中心豈忘忠。里魚穿浪鯉,江鳥度秋鴻。
火盡仍為燼,山高自作嵩。色絲辭不絕,凡虫泣寒風。
--->
===Unit 1: Basic Skills===
This unit is intended for those with minimal familiarity with the Han script and no familiarity with Literary Chinese. There is a focus on simple structures, skills for dissecting common textual structures, and short-form poetry in this unit.
Before starting this unit, students should:
* Recognise around ~30 characters.
* Can use Cangjie input.
* Have given Unit 0 a cursory glance.
<br>
By the end of this unit, students will:
* Recognise around ~100 characters.
* Comprehend numbers, the Heavenly Stems, and the Earthly Branches, and be able to use them to quantify time and date.
* Intuit the basic topic -> comment idea behind Literary Chinese. "This, it is..."
* Understand basic function words such as 也, 而, 有, and 謂.
Lessons:
# [[/The All-Purpose 也/]]
# [[/An Introduction to Chinese Numbers/]] <!--- It is hard to find authentic materials for this --->
# [[/One, Two, Left, and Right with Gongsun Long/]]
<!---
曰:「二有一乎?」
曰:「二無一。」
曰:「二有右乎?」
曰:「二無右。」
曰:「二有左乎?」
曰:「二無左。」
曰:「右可謂二乎?」
曰:「不可。」
曰:「左可謂二乎?」
曰:「不可。」
曰:「左與右可謂二乎?」
曰:「可。」
--->
# [[/The Heavenly Stems/]] <!--- Introduce ordinals, which will be used to demonstrate sentence patterns later. --->
# [[/Tell the Time with Earthly Branches/]] <!--- Introduce verbs and timekeeping --->
# [[/Lunar Dates with the Spring and Autumn Annals/]]
<!--- Vocabulary: 歲,年,朔,月,日,來,前,初,正,春秋夏冬,曆,上,下. Consider including traditional names for months in a list. --->
# [[/Skimming for Major Events in Historical Annals/]]
<!--- Don't simply use Confucius's Chunqiu: We can use texts inspired by it.
E.g. 三國史記 - 十五年京城旱。秋七月,蝗。very few new characters, lots one can use. Instantly able to use.
https://zh.wikisource.org/wiki/%E4%B8%89%E5%9C%8B%E5%8F%B2%E8%A8%98/%E5%8D%B701
Skimming annals is very possible and a very useful skill. Don't skip out on it. Teach students to skim read!!!
--->
# [[/Dinner with the Daimyo/]]
<!--
侍宴·大友皇子
皇明光日月,帝徳載天地。
三才併秦昌,万国表臣義。
-->
# [[/In Discourse with Jibong/]]
<!--
芝峰類說
倭國謂田爲畠。謂水田爲田。火田爲畑。猶我國以水田爲畓也。故官名有畠山殿。地名有畑島云。
-->
# [[/Shinto FAQ with Honda Chikaatsu/]]
<!--- https://wikisource.org/wiki/%E7%9C%9E%E9%81%93%E5%95%8F%E5%B0%8D 眞道問對 本田親徳 really good way of operationalising 乎 and much of the early grammar.
問 天帝無始無終乎。
對 天帝無始無終也。
旣以無始無終之力
與無始無終之體
造無始無終之萬物。
其功亦無始無終也。
問 天地大原在道乎。
對 天地大原實在道。
鬼神依道而立。
人民依道而活。
萬物依道而息。
This is great! --->
<!---
Some cool stuff I saw someone studying from
https://zh.wikisource.org/wiki/%E8%87%B3%E5%B0%8F%E4%B8%98%E8%A5%BF%E5%B0%8F%E7%9F%B3%E6%BD%AD%E8%A8%98#
https://zh.wikisource.org/wiki/%E6%A0%B8%E8%88%9F%E8%A8%98
Could be used for period focus
--->
===Unit 2: An Overview of Sinitic Poetry===
This unit will teach you how Sinitic Poetry operates; - that is, the way individuals in the Sinosphere compose poetry in Literary Chinese. Despite this language's fall out of favour in the past century, this tradition is still remarkably alive and well, and their short length makes them more accessible than elaborate prose. In this unit, you will begin from the ''Classic of Poetry'' before travelling through poems from the Tang dynasty, Singapore, Japan, Vietnam, the Ryukyu Kingdom, and Korea. When introducing poetry, I will furthermore use the language from the nation it is from to show how it is recited by its people.
After discussing the Classic of Poetry, we will also be a small detour into a discussion on Ping-Ze 平仄, the Tang dynasty system of alternating tones, so to produce rhyme on tonal and phonological levels. This had a major impact on Literary Chinese poetry as a whole!
By the end of this Unit, students will:
* Recognise around 120 more characters.
* Be able to explain how Sinitic Poetry rhymes and the themes it contains.
* Be able to use function words such as 在, 無, 不, 聿, and 于/於 in poetic contexts.
* Recognise the switch between 吾/我 in the subject-object positions and demonstrate it in usage.
* (Chinese speakers) Be able to differentiate 于 and 於, and understand the "interest(ed) in" meaning of 好 in most circumstances.
<!---
Summary of the above part about 于 and 於 for other editors:
于 and 於 were distinct words for an extremely long time and were still such to Literary Chinese writers. Their "merging" through Simplified-Traditional Chinese distinctions is a very modern thing. I will summarise their usages here, using Pulleyblank's Outline of Classical Chinese Grammar (2000);
* 于 - This can mean "to go" or "to/at". 黃鳥于飛 "The yellow birds go flying". Must be post-verbal. It can also appear in 至于.
* 於 - This is an all-purpose locative preposition - from "on/at/in" to "from" or even "than" (甲於乙). The implication of motion is not there at all. Must be pre-verbal. It can also appear in 之於 or be an archaic noun for a crow 於 (烏).
--->
Lessons:
# [[/Across the Rivers with Emperor Puliuru Guang/]]
<!---
春江花月夜·楊廣
夜露含花氣,春潭漾月暉。
漢水逢遊女,湘川值二妃。
This is really simple and can elucidate Ping-Ze easily.
--->
# [[/To Study the Odes/]]
<!-- 蟋蟀·姬旦 國風·唐風
蟋蟀在堂,歲聿其莫。今我不樂,日月其除。無已大康,職思其居。好樂無荒,良士瞿瞿。
蟋蟀在堂,歲聿其逝。今我不樂,日月其邁。無已大康,職思其外。好樂無荒,良士蹶蹶。
蟋蟀在堂,役車其休。今我不樂,日月其慆。無已大康,職思其憂。好樂無荒,良士休休。
-->
<!-- 黃鳥 小雅·鴻鴈之什
黃鳥黃鳥,無集于穀,無啄我粟。
此邦之人,不我肯穀。言旋言歸,復我邦族。
黃鳥黃鳥,無集于桑,無啄我粱。
此邦之人,不可與明。言旋言歸,復我諸兄。
黃鳥黃鳥,無集于栩,無啄我黍。
此邦之人,不可與處。言旋言歸,復我諸父。
-->
# [[/A Detour into Orthodox Ping-Ze/]]
<!--- 平 and 仄 are useful characters themselves. Show 仄 in the binomes 反仄,歉仄,逼仄 as it's often difficult to immediately use --->
# [[/The Restraint of Du Fu/]]
# [[/The Longing of Li Bai/]]
# [[/The Environment with Bukha Timur/]]
<!---
西湖竹枝詞·布哈特穆爾
湖上春歸人未歸,桃紅柳緑黄鶯飛。
桃花落時多結子,楊花落處秪沾衣。
宫词·布哈特穆爾
玉樓珠箔晚天涼,秋色依稀滿建章。
金井梧桐霜葉盡,自隨流水出宮牆。
Mongol writer from the Uyghur Kingdom of Gaochang
Spammed Ctrl+F in https://zh.wikisource.org/wiki/%E5%BE%A1%E9%81%B8%E5%9B%9B%E6%9C%9D%E8%A9%A9_(%E5%9B%9B%E5%BA%AB%E5%85%A8%E6%9B%B8%E6%9C%AC)
--->
# [[/Pillow Talk with Guan Yunshi/]]
<!---
紅繡鞋·貫雲石
挨著靠著雲窗同坐,偎著抱著月枕雙歌,聽著數著愁著怕著早四更過。四更過情未足,情未足夜如梭。天哪,更閏一更兒妨甚么!
Uyghur author!
--->
# [[/Buddhist Philosophy with Ngô Chân Lưu and Taisei Shōan/]]
<!-- 元火·吳真流
木中元有火,元火復還生。
若為木無火,鉆燧何有萌。-->
<!-- 杜鵑·大成聖安
夢覚孤床静
杜鵑帯雨飛
一声来近枕
何者不沾衣
-->
# [[/Odes with Mō Taiei and Zheng Chengxun/]]
<!-- 詠松·毛泰永
植體宜千仞,垂陰動百尋。
李膺真烈烈,和嶠自森森。
桃李何堪較,雪霜安得侵。
萬年身不老,種子又成林。
AKA Inoha Seiki 伊野波 盛紀 -->
<!-- 詠班蘭·鄭成勛
南國多芳草,班蘭最有名。
深根將綠茁,長葉亦叢生。
取味迎賓合,入厨任水烹。
可憐經一用,擲棄不留情。
鄭成勛《樵隱詩集》 https://nus.edu.sg/nuslibraries/dsprojects/sg-jiutishi/poem/827 -->
# [[/A Golden Cup and the Fall of a Dynasty with Yan Fu/]]
<!---
鞏金甌·嚴復
鞏金甌,承天幬,民物欣鳧藻,喜同袍。
清時幸遭,真熙皞,帝國蒼穹保。
天高高,海滔滔。
This has music to it, which I think can add a lot. It is also necessary to introduce Yan Fu early given he did translation. --->
# [[/On a Journey with Sa Dula/]]
<!---
無題·薩都剌
為客三年海上洲,故鄉何處瘴雲稠。
數千里外蠻人域,十八灘頭過客舟。
時有山禽呼姓字,或從海鳥作朋儔。
故人珂珮周旋處,紫殿風清十二樓。
https://zh.wikisource.org/wiki/%E7%84%A1%E9%A1%8C_(%E8%96%A9%E9%83%BD%E5%89%8C)
A naturalised Mongol scholar who made a beautiful poem. This'll be a capstone.
--->
<!---
朝中措·襄陽古道灞陵橋
襄陽古道灞陵橋,詩興與秋高。
千古風流人物,一時多少雄豪。
霜清玉塞,雲飛隴首,風落江皋。
夢到鳳凰台上,山圍故國周遭。
北郊晚步
陂水荷凋晚,茅檐燕去涼。
遠林明落景,平麓淡秋光。
群牧歸村巷,孤禽立野航。
自諳閑散樂,園圃意尤長。
Jurchen poet and grandson of Emperor Shizong of Jin. He's a Zen Buddhist, so we'll go back to him later.
--->
===Unit 3: Confucianism and the World===
This is a Confucian-themed unit with a smattering of other items. You will see the odd geography of the past, early linguistic philosophy, and terrifying breakaway states!
By the end of this unit, students should be able to:
* Recognise around 200+ characters.
* Read basic annals and histories with some dictionary assistance, and comprehend 3-character structures reliably.
* Have encountered basic grammatical points such as 之、乎、者、也、而、則、乃、所、以、於、于、與、且、蓋、and 夫.
** 於 and 于 should be distinguishable.
* Survive a text of at least 250 characters and read for gist.
Lessons:
# [[/A Brief Overview of Confucianism/]]
# [[/The Mountains with Yelü Tuyu/]]
<!---
立木海上刻詩 耶律圖欲 / 耶律倍 / 李贊華
小山壓大山,大山全無力。
羞見故鄉人,從此投外國。
--->
# [[/Teaching the Annals in Qi/]] <!-- Gongyang Gao's commentary -->
# [[/Is a White Horse a Horse?/]]<!-- Teach negation with 非 in 公孙龍子 and compare with 不 -->
# [[/The Three Character Classic/]]
# [[/Expressing Filial Conduct with Confucius and Hara Saihin/]]
<!--
次韻杏坪先生
父執有君孤不孤
相依遍接搢紳徒
区区自抱地方寸
杏杏重遊天一隅
羇雁飛鳴迷汝國
家人思夢入江都
如教志業青年遂
世上寧無逐臭夫
-->
# [[/Confucianism and the Environment with Sai On/]]<!-- 木假山記 -->
# [[/In Debate with Mencius/]]
===Unit 4: Women's Writing===
In this unit, women's writing from various areas of China will be explored. This is chiefly targeted at poetry and the themes within; from the feminine voice of the Classic of Poetry to the remonstrance towards the Khitan Emperor Tianzuo of Jin by his Consort Dasese. The role of women in courtly society is to be elucidated here!
# [[/An Unmarried Life with Heo Nansŏrhŏn/]]
<!---
貧女吟
豈是乏容色。工鍼復工織。
少小長寒門。良媒不相識。
夜久織未休。戛戛鳴寒機。
機中一匹練。終作阿誰衣。
手把金翦刀。夜寒十指直。
爲人作嫁衣。年年還獨宿。
--->
# [[/Responding to Lord Trần with Hồ Xuân Hương/]]
<!---
Responding to 陳光靜 Trần Quang Tĩnh
《和陳侯》
愧無才調使人驚,十載風塵貫耳鈴。
已是臨枰知敵手,莫須敲月苦殫精。
為輪為彈隨遭遇,誰鳳誰鶯任賦生。
造物於人何苟惜,明珠休向暗中呈。
莫須 is an important structure to teach here.
--->
# [[/Gaze into the Autumn Night with Taisei Shōan/]]
<!---
秋夜偶成·大成聖安
長天浮爽気,月色興無窮
群犬吠山径,百蟲啼野風
悲秋秋夜永,感古古今同
自是孤窓下,凄然万慮空
--->
# [[/Visiting a Temple with Yu Xuanji/]]
<!---
遊崇真觀南樓覩新及第題名處
雲峰滿目放春晴,歷歷銀鈎指下生。
自恨羅衣掩詩句,擧頭空羨榜中名。
--->
# [[/Remonstrance with Dasese/]]
<!---
https://zh.wikisource.org/wiki/%E8%AB%B7%E8%AB%AB%E6%AD%8C
諷諫歌·大瑟瑟
勿嗟塞上兮暗紅塵。
勿傷多難兮畏夷人。
不如塞奸邪之路兮選取賢臣。
直須臥薪嚐膽兮激壯士之捐身。
可以朝清漠北兮夕枕燕雲。
Dasese (or 萧瑟瑟) was a Khitan consort to Emperor Tianzuo of Liao. She remonstrated him as the Jurchens were beginning to encroach upon the Khitan, and was forced to commit suicide for her remonstrance. Tianzuo would soon pay for his malfeasance.
--->
# [[/The Love Songs of the Odes/]]
<!---
褰裳
子惠思我,褰裳涉溱。子不我思,豈無他人?狂童之狂也且!
子惠思我,褰裳涉洧。子不我思,豈無他士?狂童之狂也且!
柏舟
彼柏舟,在彼中河,髧彼兩髦,實維我儀,之死矢靡它,母也天只,不諒人只。
汎彼柏舟,在彼河側,髧彼兩髦,實維我特,之死矢靡慝,母也天只,不諒人只。
行露
厭浥行露,豈不夙夜,謂行多露。
誰謂雀無角?何以穿我屋?誰謂女無家?何以速我獄?雖速我獄,室家不足。
誰謂鼠無牙?何以穿我墉?誰謂女無家?何以速我訟?雖速我訟,亦不女從。
--->
# [[/Rules for Women with Ban Zhao/]]
<!--- https://zh.wikisource.org/wiki/%E5%A5%B3%E8%AA%A1 --->
# [[/The Tragedy of Cai Wenji/]]
<!---
悲憤詩
〔兩漢〕蔡文姬
漢季失權柄,董卓亂天常。
志欲圖篡弒,先害諸賢良。
逼迫遷舊邦,擁主以自強。
海內興義師,欲共討不祥。
卓眾來東下,金甲耀日光。
平土人脆弱,來兵皆胡羌。
獵野圍城邑,所向悉破亡。
斬截無孑遺,屍骸相撐拒。
馬邊懸男頭,馬後載婦女。
長驅西入關,迥路險且阻。
還顧邈冥冥,肝脾為爛腐。
所略有萬計,不得令屯聚。
或有骨肉俱,欲言不敢語。
失意幾微間,輒言斃降虜。
要當以亭刃,我曹不活汝。
豈復惜性命,不堪其詈罵。
或便加棰杖,毒痛參並下。
旦則號泣行,夜則悲吟坐。
欲死不能得,欲生無一可。
彼蒼者何辜,乃遭此厄禍。
邊荒與華異,人俗少義理。
處所多霜雪,胡風春夏起。
翩翩吹我衣,肅肅入我耳。
感時念父母,哀嘆無窮已。
有客從外來,聞之常歡喜。
迎問其消息,輒復非鄉里。
邂逅徼時願,骨肉來迎己。
己得自解免,當復棄兒子。
天屬綴人心,念別無會期。
存亡永乖隔,不忍與之辭。
兒前抱我頸,問母欲何之。
人言母當去,豈復有還時。
阿母常仁惻,今何更不慈。
我尚未成人,奈何不顧思。
見此崩五內,恍惚生狂痴。
號泣手撫摩,當發復回疑。
兼有同時輩,相送告離別。
慕我獨得歸,哀叫聲摧裂。
馬為立踟躕,車為不轉轍。
觀者皆噓唏,行路亦嗚咽。
去去割情戀,遄征日遐邁。
悠悠三千里,何時復交會。
念我出腹子,匈臆為摧敗。
既至家人盡,又復無中外。
城廓為山林,庭宇生荊艾。
白骨不知誰,縱橫莫覆蓋。
出門無人聲,豺狼號且吠。
煢煢對孤景,怛吒糜肝肺。
登高遠眺望,魂神忽飛逝。
奄若壽命盡,旁人相寬大。
為復強視息,雖生何聊賴。
託命於新人,竭心自勖勵。
流離成鄙賤,常恐復捐廢。
人生幾何時,懷憂終年歲。
--->
===Unit 5: Myths and Legends of East Asia===
<!--- Shanhaijing, Zibuyu... Etc. Zhiguai literature. This aims to provide a counterpoint to what Confucius wouldn't discuss - thus Zibuyu. Going straight into Daoism isn't ideal. --->
# [[/Exploring the World of Mountains and Seas/]]<!-- Structure: 出焉 -->
# [[/Oh, the Qilin!/]] <!--- Even here, the odes can be studied! --->
# [[/Ultimate Justice with Xiezhi/]]
# [[/The Virtue of the Fenghuang/]]
# [[/The Entrapment of Hua Po/]]
# [[/Nüwa Created the World/]]
===Unit 6: Nation Focus - Japan===
# [[/The Inariyama Sword/]]
<!--- short and sweet! --->
# [[/Entering Japan with Takeda Shingen/]]
<!---
便面蘆間有漁·武田信玄
山色水光烟接天,漁翁江上棹蘆辺
丹青若写得勝景,万里風波一釣船
便面半月照梅花·武田信玄
蘆葦清風垂頂絲,窺魚白鷺水生涯
江南記得曾遊夕,似見梨花院落時
島森哲男. (2015). 武田信玄漢詩校釈. 宮城教育大学紀要, 49, 333–352. https://mue.repo.nii.ac.jp/records/440
似 is a really useful thing to teach early on.
--->
# [[/The Oldest Inscription in Japan/]]
<!--- 宇治橋断碑 --->
# [[/Remembering Conflict with Nakajima Noburu/]]
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/6faa4d3e57a24e542db0375894f0ead5503218bb --->
# [[/Shinto Teachings with Honda Chikaatsu/]]
<!--- https://wikisource.org/wiki/%E9%81%93%E4%B9%8B%E5%A4%A7%E5%8E%9F 本田親徳 道之大原 --->
# [[/The Diary of Fujiwara no Teika/]]
<!--- 明月記 --->
# [[/Reading the History of Japan with Prince Toneri/]]
<!--- 日本書記, etc. --->
<!--- # [[/Occupying Taiwan/]] --->
<!--- I have some colonial literature on me that can be used here. --->
===Unit 7: Nation Focus - Korea===
<!--- 三國史記 for sure! --->
<!--- 放蟬賦 by Yi Kyubo --->
<!--- https://zh.wikisource.org/wiki/%E9%A0%A4%E9%BD%8B%E9%81%BA%E7%A8%BF 頤齋遺稿 黃胤錫 Joseon scholar! --->
# [[/An Elegy to the Empress with Choe Ja/]]
<!---
Choe Ja
元德大后輓詞·崔滋(최자)
乾極曾客配,坤儀正體元。
枕前朝聖主,帳底見曾孫。
陰慘俄沉月,屋悲便沒軒。
三韓千古淚,七十九年恩。
--->
# [[/Language Reform with Sejong the Great/]]
<!--- 訓民正音 https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/1ef2b42cc50055affaa5ef39c61b87ed31c34a60 multiple poems and descriptive terms, possibly the best capstone --->
===Unit 8: Christian Literature===
# [[/A Different Three Character Classic with Hong Xiuquan/]]
# [[/Friar Juan Cobo's Veritable Record/]]
<!---
One of few texts from the Philippines that I have ever found!
https://bnedigital.bne.es/bd/en/viewer?id=0160187c-9d9b-4f34-84d6-bc03fd310c69
--->
# [[/The Delegate's Edition/]]
# [[/Nestorian Steles during the Tang/]]
<!--- 大秦景教宣元至本經經幢 and 景教碑 --->
# [[/Hong Xiuquan's Bible/]]
<!--- https://bible.fhl.net/ob/nob.html?book=407 --->
<!--- I don't want to focus too much on Hong Xiuquan here, so look for more material, especially from missionaries. --->
===Unit 9: An Introduction to Daoism===
<!--- And now back to your regularly scheduled Zhuangzi/Laozi/Liezi. But with more interesting stuff. Trust! --->
# [[/Laozi Explains the Dao/]]
<!--- 道可道,非常道。名可名,非常名。無名天地之始;有名萬物之母。故常無欲,以觀其妙;常有欲,以觀其徼。此兩者,同出而異名,同謂之玄。玄之又玄,衆妙之門。I can expect learners to recognise the stuff here. --->
# [[/Qingtan with Xie Daoyun/]]
<!--- 謝道韞; mentioned in the sanzijing. could be good!
《泰山吟·謝道韞》
峩峩東嶽高,秀極衝青天。
巖中間虛宇,寂寞幽以玄。
非工復非匠,雲構發自然。
器象爾何物,遂令我屢遷。
逝將宅斯宇,可以盡天年。
《拟嵇中散咏松诗·謝道韞》
遙望山上松,隆冬不能凋。
願想遊不憩,瞻彼萬仞條。
騰躍未能升,頓足俟王喬。
時哉不我與,大運所飄遙。
--->
# [[/The Doubting Neighbour/]]
# [[/Kuafu Chases the Sun/]]
# [[/The Frog in a Well/]]
# [[/Wu wei with King Hui of Liang/]]
# [[/The Old Man that Moves the Mountains/]]
# [[/Master Zhuang Dreams of Butterflies/]]
<!--- Currently very stereotypical, but there's stuff to work with at least. Need to include those weird Daoist characters among other things. --->
===Unit 10: Nation Focus - Ryukyu Kingdom===
# [[/Historical Annals with Sai On/]] <!--- Kyuko is an easy cop --->
# [[/The Enthronement of Shō Tei/]]
<!---
康熙二十二年封王尚貞敕
皇帝敕諭琉球國中山王世子尚貞:惟爾遠處海隅,虔修職貢;屬在塚嗣,序應承祧。以朝命未膺,罔敢專擅;恪遵典制,奉表請封。朕念爾世守臣節,忠誠可嘉!特遣正使翰林院檢討汪楫、副使內閣中書舍人加一級林麟焻,齎敕封爾為琉球國中山王,並賜爾及妃文幣等物。爾祗承寵眷,懋紹先猷;輯和臣民,慎固封守:用安宗社於苞桑,永作天家之屏翰。欽哉,毋替朕命!故諭。
Teach imperial edicts.
Consider seeing if there's a letter of acceptance from Shō Tei.
Recorded in 琉球國志略
https://ctext.org/wiki.pl?if=en&chapter=966326
--->
# [[/The Twilight of Ryukyu with Shō Ten/]]
<!---
神田酒樓街燈 尚典
酒樓今秋設芳筵,
一望街燈燦燦連。
烟氣引來通柱上,
光爭星月照神田。
--->
# [[/A Trip to Ryukyu with Luo Sen/]] <!--- Pre-Capstone --->
<!---
遐邇貫珍 1854-11 - 日本日記 羅森
https://archive.org/details/HEKC185411/page/n5/mode/1up
A solid description of Ryukyu cultural customs in Volume 11. Absolutely incredible.
日三日火船直向東北而駛出了臺灣之外幾日不見天涯是時北風大作波浪沖天火船亦甚飄蕩而不能立見有沙鷗隨風而逐浪心直駛七日漸見小山而到琉球琉球一國長闊一百七十五里其國城在地球圖緯線赤道之北二十六度十四分經線中華北京偏東十一度二十四分自明以來世封王爵叨列藩籬其處土產不過蔬菜番薯菜油黑糖等類人民束髻大補是穿草履男女粧飾頭上祇插一簪二簪為別故少年之男女瞥目則無異及其壯也皆留鬚髯故街上長鬚之人甚多甲寅正月初一予上岸遊玩見街上兒童甚多分以銅錢各極歡喜人民亦甚謙恭民居間亦貼新春聯于門外但不見有別等繁華之事那霸有寺寺內有園是名家世宦之墳所以石刊刻姓名年號于碑上每日道人打掃供奉生花樹葉于墓前另有人家祖墳與中國之明塚無異峰巒之上樹木多植民房則以蠻石圍墻內以茅草結屋而居佳物椅棹俱無惟以草蓆屈膝而坐對火盆而吹煙民間亦有識中國言語字墨者
不張舖店惟有墟塲男不貿易婦女為之以貨易貨而外方之金銀弗尚焉然而百姓亦甚畏官長飲食亦甚粗粕甘守樸儉不務奢華亦鮮欺詐板門紙窓夜間亦不防竊曾見途中撿物亦能以返原人公門之內冷冷落落並無案牘之煩淳樸之風畧有同于上古之世我等外國之欲買什物須言于官官為代辦正月初六提督被理衛廉士等一班將官布列威嚴與予乘轎至王宮總理大臣尚宏勳為主席布政大夫馬良才為知客享宴甚豐食物多與中國無異宴後各官皆饋有紙扇烟包布帛等項是物雖粗此亦世子之恭敬外國故亞國亦以禮物而返贈之世子王宮離岸三里在于山頂是名守禮將至其宮一路亦有樹木石牌坊宮室亦甚寬大幽雅垣局可觀其處多栽鳳尾草森樹等類以障陰山邊田土樹藝五穀近海沙田水漲之後人收其沙以煎鹽此時明月當圓予覽山川亦足見一方之風景
--->
<!--- 中山世鑑 and so on. Lots of poetry too. --->
===Unit 11: Nation Focus - Singapore===
<!--- National Library of Singapore has a poetry series that's super good! --->
===Unit 12: Literary Chinese in Medicine===
<!--- do not endorse the medical practices discussed in these...make sure to link back to the heavenly stems here as they are associated with specific body parts. --->
# [[/The Books of the Yellow Emperor/]]
<!-- 黃帝内徑 --->
# [[/Deviant Qi with Zhang Congzheng/]]
<!--- https://zh.wikisource.org/wiki/%E5%84%92%E9%96%80%E4%BA%8B%E8%A6%AA --->
# [[/Anatomy with Sugita Genpaku/]]
<!--- 解体新書 --->
# [[/A Lost Wu Medical Text analysed in Japan/]]
<!--- 難經古義 --->
===Unit 13: People Focus - Zhuang peoples===
<!--- https://mooc1.chaoxing.com/mooc-ans/ztnodedetailcontroller/visitnodedetail?courseId=84745403&knowledgeId=84745463&_from_=&_fromV2_=&rtag= 《峤西诗钞》 is also a really good shout. --->
<!--- Basically, there are Zhuang and Tangut peoples who wrote in Literary Chinese, and their inclusion here is to show that even those who made their own scripts would use this tongue. 张鸿翮 imported the character 朴 to describe a bug, for example. --->
# [[/Zhuang poetry with Zhang Honghe/]]
<!--- https://wenyi.gmw.cn/2024-06/25/content_37398911.htm
一是忠实记录了汉诗创作与古壮字交融的文化现象。清代壮族诗人张鸿翮(hé)《大塘谣》(《峤西诗钞》卷二)云:
去了休。去到大塘红蓼洲。红蓼生花,不结子。绿朴生花,毬见毬。
诗中所说“绿朴”,是壮族对柚子的惯称。“柚子”,壮语发音为“bug”。根据《古壮字字典》,其对应的古壮字为“朴(㭪)”。诗人将古壮字运用到汉文诗歌创作中,刻下了明清壮汉文化交相辉映的注脚。
This sort of thing is why Zhuang and Tangut inclusion is important, as they show how flexible Literary Chinese can be. --->
<!---
Possible Jurchen/Khitan focus?
耶律楚材 - Served 窝阔台, 玄風慶會錄 is short and respectable enough to work with.
--->
===Unit 14: People Focus - Tangut peoples===
<!--- 羅福萇 and 羅振玉 wrote studies on Western Xia / Tangut script. Look for poets and stuff. --->
===Unit 15: Literary Chinese in the Military===
<!--- Real Sun Zi hours! 7 Military Classics are an obvious shout, but look for more stuff too. --->
# [[/A Bilingual Stele of the Khitans/]]
<!--- https://wikisource.org/wiki/%E5%A4%A7%E9%87%91%E7%9A%87%E5%BC%9F%E9%83%BD%E7%B5%B1%E7%B6%93%E7%95%A5%E9%83%8E%E5%90%9B%E8%A1%8C%E8%A8%98 --->
# [[/Going to war with Boyan/]]
<!---
Boyan's Poem from the 元史
伯顏,蒙古巴林部人。至元十一年拜中書左丞相,總兵伐宋。官至開府儀同三司,薨贈太師,封淮安王,諡忠武。
《玉堂嘉話》:初,宋未下時,江南謠云:「江南若破,白雁來過。」當時莫喻其意。及宋亡,蓋知指丞相巴延也。
過梅嶺岡留題
馬首經從庾嶺回 【 庾嶺回 七修類稿(乾隆刊本)卷四十六作「嶺島歸」。】 ,王師到處悉平夷。擔頭不帶江南物,只插梅花一兩枝。
《七修類藳》:伯顏下江南,過金陵梅嶺岡詩云云。所以著名,亦有是善。
--->
# [[/An Edict from the Xianbei/]]
<!---
教義詔 楊廣
武有七德,先之以安民。政有六本,興之以教義。高麗高元,虧失藩禮,將欲問罪遼左,恢宣勝略。雖懷伐國,仍事省方。今往涿郡,巡撫民俗。其河北諸郡及山西、山東年九十已上者,版授太守;八十者,授縣令。
--->
# [[/The Suppression of the Kingdom of Dongning/]]
<!---
台灣鄭氏始末
https://ctext.org/wiki.pl?if=en&chapter=139938
Largely a record of wars in Dongning rather than anything about the trade etc, so it fits here.
--->
# [[/The Shunzhi Emperor vs Li Zicheng/]]
<!---
順治帝
告示
逆酋李自成已於通城斃命,各地鄉勇務隨我軍剿殺逆賊殘餘,凡有斬獲逆酋及擒獲逆酋交我軍者,一經驗證,按軍功論級給賞,必以示我朝皇恩浩蕩。
大清順治二年五月二十四日
恩詔
今月何日,為國曆改歲之履端,即為永昌書元之紀念?緬惟我朝民眾,三元肇慶,四始發祥。陳椒酒以飛觴,躋堂介壽;換桃符以獻歲,辟戶書新。翹望德容,河勝額手。今山河如舊,歲序更新;今天下同春,咸頒麗澤。願我朝君臣與萬民同樂,共沐化日光天,方不虛度韶華。
永昌二年新正初一
There's probably better choices here. Review.
--->
# [[/The Art of War/]]
===Unit 16: Nation Focus - Vietnam===
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/commit/cfe6700e01f6fd59616a375d31aa8cd096677be1 this first --->
# [[/Ancestor Veneration with the Descendants of Zhu Xi/]]
<!--- https://github.com/ShiraTheMogul/fanyahanwen-corpus/tree/main/corpus%2F%E8%B6%8A%E5%8D%97%E6%BC%A2%E6%96%87%2Fclean somewhere in here --->
# [[/Spreading Revolutionary Consciousness with Phan Bội Châu and Liang Qichao/]]
<!--- 越南亡國史 Possibly the most important text in Vietnamese history, not even gonna lie. https://zh.wikisource.org/wiki/%E8%B6%8A%E5%8D%97%E4%BA%A1%E5%9C%8B%E5%8F%B2 --->
# [[/Academia in Literary Chinese between East and West/]]
<!--- 南風雜誌 is a massive shout here. Absolutely amazing series. --->
===Unit 17: Historical Annals and Encyclopediae===
<!--- 永樂大典 will teach how to infer from gaps in texts! 《編類》 is an incredibly interesting essay from here that can bring up the odes and Confucius's「思無邪」quote. It can prepare students for the wrath of Qing academia later. --->
# [[/The History of Liao, Jin, and Song with Toqto'a/]] <!--- 脱脱 --->
# [[/Two Years in the Forbidden City with Yu Deling/]] <!--- 清宮禁二年記 https://zh.wikisource.org/wiki/%E6%B8%85%E5%AE%AE%E7%A6%81%E4%BA%8C%E5%B9%B4%E8%A8%98 --->
# [[/Selected Records of the History of the Da Shun/]]
<!--- Fair Use of a 2010 book written in Literary Chinese about the Da Shun dynasty. Limit to 500 characters, if that. Use to encourage recognition of Simplified variants and modern Wenyanwen. --->
# [[/Documenting the World with Terajima/]]
<!--- 和漢三才図会 寺島良安, built off 三才圖會 --->
===Unit 18: Buddhist Literature===
<!--- You would be forgiven for wondering why this is so late, but if you look at many classical Buddhist texts you'll quickly see a ton of loanwords that make it significantly more difficult to read than the average text. Thus, it goes here for now. --->
<!--- Place focus on practical stuff first. Stuff you can and WILL see in Buddhist temples. Stuff Buddhists can take away immediately. Skills-based approach feels strongest here. --->
<!--- Look at Northern Liang and Later Qin literature, as there is a ton of work by translators from India during the 16 kingdoms period, particularly those two. --->
<!--- Stuff by Bodhidharma 達摩 could be fun too https://zh.wikisource.org/wiki/Author:%E9%81%94%E6%91%A9 --->
# [[/Dipping your feet in with Wenyan Shu/]]
<!---
華亭
世尊遺法本忘言,教外別傳意已圓。
只履攜將蔥嶺去,不妨來上月明船。
--->
# [[/The Seven Tathagatas/]]
<!---
南無寶勝如來
南無多寶如來
南無妙色身如來
南無廣博身如來
南無離怖畏如來
南無甘露王如來
南無阿彌陀佛
Use to introduce some core vocabulary in repetitive manner.
Useful phrases from my trip to Jing'an Temple
南無本師釋迦牟尼佛 - Pay homage to the root teacher
南無大悲觀世音菩薩 - Pay homage to the goddess of mercy
廣種福田 - widely plant a meritorious field
--->
# [[/Two Buddhist Temples in Shanghai/]]
<!---
留雲禪寺
雲留雲翔領畧幾許禪機此地有雲散天開真如界。
塔內塔外普示無邊圓覺是故曰塔影雙照解脫門。
歲次壬午冬月吉旦。
覺醒敬撰。
楊胡生沐手恭書。
善信印利明敬獻。
--->
<!--- 福慧宝鼎 慧明大和尚 - introduce the Buddhist timekeeping system with 佛歷 around this point.
赤烏古剎
建寺一千七百六十周年紀念
古剎三國建
滬瀆有重玄
石佛音淨現
聖跡顯重元
唐時稱永泰
宋敕名靜安
聖祖留佛闡
仲師移伽藍
元收八景偈
明鑄鐘聲梵
清樹化羅漢
選賢十方讚
佛日普光明
福慧共修善
鼎運昌隆際
轉正法輪緣
歲次丁亥住持慧明監製
--->
# [[/Foreseeing Monkhood with Yi Xing/]]
<!--- 看命一掌金 --->
# [[/A Trip to Western Xia with Zhi Guang and Hui Zhen/]]
<!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%91%AA%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 --->
<!--- https://zh.wikisource.org/wiki/%E5%AF%86%E5%92%92%E5%9C%93%E5%9B%A0%E5%BE%80%E7%94%9F%E9%9B%86 --->
# [[/Jizang's Three Discourses/]]
<!--- https://zh.wikisource.org/wiki/%E4%B8%89%E8%AB%96%E7%8E%84%E7%BE%A9 --->
<!---
I saw these texts being quoted and thus should consider them in some capacity.
《般若波羅蜜多心經》
《金剛般若波羅蜜經》
《一切智光明仙人慈心因緣不食肉經》
《妙法蓮華經》
《大般涅槃經》
《大方等大集經》
《大毘盧舍那成佛神變加持經蓮華胎藏悲生曼荼羅廣大成就儀軌供養方便會》/ 胎藏曼荼羅
《佛說救拔焰口餓鬼陀羅尼經》
《雜阿含經》
Look at Japan's 五山文学
--->
===Unit 19: People Focus - Manchu peoples===
# [[/Qing dynasty Poetry with Nara Singde/]]
<!--- 飲水詞 納蘭性德 https://zh.wikisource.org/wiki/Author:%E7%B4%8D%E8%98%AD%E6%80%A7%E5%BE%B7 --->
# [[/Amassing Words with the Kangxi Emperor/]]
<!--- Kangxi Dictionary Abstract - https://zh.wikisource.org/wiki/%E5%BA%B7%E7%86%99%E5%AD%97%E5%85%B8 --->
# [[/Amassing Literature with the Qianlong Emperor/]]
<!--- Siku Quanshu abstract https://zh.wikisource.org/wiki/%E5%9B%9B%E5%BA%AB%E5%85%A8%E6%9B%B8%E7%B8%BD%E7%9B%AE%E6%8F%90%E8%A6%81 --->
<!---
Yongzheng Emperor's Poetry
https://zh.wikisource.org/wiki/Author:%E9%9B%8D%E6%AD%A3%E5%B8%9D
《和碩怡賢親王祭文》
Also include 滿洲國 stuff to show the fall of the Qing and attempts to preserve it through becoming a Japanese puppet state. It is important to show how Literary Chinese can be misused as well. 滿洲國建國宣言 is a good shout, as is 法制 to prepare students who may be interested in Taiwan legal stuff later down the road.
https://zh.wikisource.org/wiki/Category:%E6%BB%BF%E6%B4%B2%E5%9C%8B
--->
# [[/Paintings and Beauty with Puru Aisin-Gioro/]]
<!--- Saw these in Shanghai Museum with some writing, seemed really cool. Teaches another skill. --->
===Unit 20: Qing-RoC Literature===
<!--- many writers here, will be difficult to sift through. Include 四库全書 abstracts and stuff here. --->
# [[/Jewish Refugees in Shanghai/]]
<!--- Show passports, certificates, etc, from the Jewish Refugee Museum, anonymised. --->
# [[/A Literary Chinese Abstract/]]
<!--- Abstracts from siku quanshu, probably want others --->
# [[/Lament with Lu Ruoteng/]]
<!---
《疑猜》盧若騰,東寧國
盟誓變為交質子,春秋戰國風如此;末世上下相疑猜, 更質妻子防逃徙。
此法只可羈庸奴,若遇梟雄術窮矣;妻可再娶子再育, 安能長坐針氈裏。
我贈一法君記存;推心置腹人知恩;眾人畜之眾人報, 幾個國士在君門。
盧若騰撰,陳漢光編輯,《島噫詩》,臺灣文獻叢刊第二四五種(臺北:臺灣銀行經濟研究室,1968年)21頁。
--->
# [[/Common Linguistics Knowledge in the RoC/]]
<!--- 音韻常識 --->
==References used for this page==
* Yang, B. (2016). 文言语法 [Literary Chinese Grammar] (1st ed). 中华书局 [Zhonghua Book Company]. ISBN: 978-7-101-11619-9
* Priestley, K. E., & Shou-jung, C. (1962). China’s Men of Letters, Yesterday and Today. Dragonfly Books.
{{BookCat}}
3yxeh395ljumxy31adsthm9zlwz98mb
User:NiferO/Efo riro (Yoruba Vegetable Soup)
2
483084
4640472
4639658
2026-06-16T21:24:38Z
Kittycataclysm
3371989
rm incomplete category flag since in userspace
4640472
wikitext
text/x-wiki
{{recipesummary|includecat=no|category=Soup recipes|servings=6–8|time=10–15 minutes|difficulty=1}}
{{Incomplete recipe|reason=still missing categories, quantities, and linking|includecat=no}}
{{recipe}} | [[Cookbook:Soups|Soups]]
'''Efo riro''' is a rich, savory vegetable soup from the Yoruba people of Southwestern Nigeria. Known for its vibrant flavor, and colorful presentation,it combines Leafly greens, pepper and assorted meats and fish in a deeply seasoned sauce. It is a staple of Yoruba cuisine and a symbol of home-style cooking across Nigeria.
== Ingredients ==
* Sliced Spinach leaves (7-10 cups)
* 7-10 pieces stock fish ear
* Quarter cup of sliced [[Cookbook:Pepper|pepper]]
* 1 cup of ground tatashe
* assorted [[Cookbook:Meat|meat]] (1kg)
* Sliced onions
* Ground [[Cookbook:Crayfish|Crayfish]]
* 2-3 cups of iru (locust beans)
* smoked fish(2-3 medium)
* [[Cookbook:Palm Oil|Palm oil]] (200ml)
* 3 Seasoning cubes
== Procedure ==
# Wash and season the meat with salt, onions, and seasoning cubes. Cook until tender and set aside.
# Add stockfish and smoked fish to the cooked meat and simmer for about 10–15 minutes.
# In another pot, heat the palm oil. Add sliced onions and fry lightly.
# Add blended or sliced pepper and fry for about 10 minutes, stirring to prevent burning.
# Add the cooked meat, fish, and some stock. Stir well and allow to simmer for 5 minutes.
# Add crayfish and locust beans (iru), then cook for another 3–5 minutes.
# Add the vegetables (spinach or ugu) and stir thoroughly.
# Taste and adjust seasoning. Simmer for 3–5 minutes, then remove from heat.
=== Serving ===
Serve hot with swallow foods like pounded yam, eba, or fufu.
[[Category:Recipes for soup]]
[[Category:Nigerian recipes]]
obw3ry18azmg81l0b2l3tbev1siwa2k
User:Golgbachev/Melk Kos
2
483300
4640476
4637039
2026-06-16T21:28:54Z
Kittycataclysm
3371989
rm incomplete category flag since in userspace
4640476
wikitext
text/x-wiki
{{recipe}}
{{Incomplete recipe|reason=headers and formatting don't match recipe requirements, missing appropriate linking, missing quantities, missing categories, general stylistic adjustments needed|includecat=no}}
Melk kos is a traditional South African milk-based porridge originating from Afrikaans rural farm kitchens, developed as a simple nourishing breakfast using staple pantry ingredients.
{{Recipe summary
| Category = Breakfast recipes
| Cuisine = Southern Africa
| Time = 15 minutes
| Difficulty = 1
}}
== Ingredients ==
* 1 L full cream milk
* 100 g flour
* 50 g sugar
* 30 g butter
* Pinch of salt
* Cinnamon (optional)
== Utensils ==
* Heavy-bottom saucepan
* Whisk
* Wooden spoon
== Method ==
* Heat milk over medium heat until steaming (do not boil).
* Mix flour with cold milk to form a smooth slurry.
* Slowly whisk slurry into hot milk.
* Cook 10–15 minutes until thick and silky.
* Add butter and stir until fully melted.
* Add sugar and salt.
* Serve hot with cinnamon.
[[Category:South African recipes]]
[[Category:Breakfast recipes]]
[[Category:Easy recipes]]
cmmt0z2trl39olgzt6flrl2alks71u7
FlightGear Flight Simulator/Getting Started
0
483314
4640489
4640172
2026-06-17T05:02:59Z
Fcbs3
3546790
links
4640489
wikitext
text/x-wiki
This page will introduce how to get started with FlightGear, based on the content of FlightGear Wiki.
== Running FlightGear ==
=== Starting FlightGear ===
The easiest way to start FlightGear is to use the desktop icon. This starts the graphical interface FlightGear Qt launcher where you can choose aircraft, start position etc. Remember the Qt launcher only has basic options to get you started. A lot of options for graphics, scenery, weather, environment, input devices etc. are available from the menu inside the simulator.
Many users choose however to start FlightGear directly from the command line. The executable name is <code>fgfs</code> and can be run without options. If it is "not found", it is likely not in your path. The location depends on your particular system and choices you made during compile and installation. There is a list of [[FlightGear_Flight_Simulator/Technical/Command_line_options command line parameters]] which must be used to change many options, like the aircraft you want. The most important:
fgfs --launcher # opens the FlightGear Qt launcher
fgfs --show-aircraft # displays a list of installed aircraft
fgfs --aircraft=c172p # start FG with the aircraft "c172p" (from the list)
The Qt launcher also lets users add command line parameters for options that are normally changed from the menu inside the simulator, as well as quite advanced options that are only available from the command line.
=== Configuring rendering and UI ===
[[File:FlightGear Rendering options 2024.1.png|thumb|Rendering options]]
If your render quality or framerate is too low, click "View > Rendering Options" to adjust the graphic settings. For newer hardware, it's recommended to set "graphics quality" to high and check "use disk space for faster loading", "animated jetways" and "satellite photoscenery".
If the menu text appears too small on high DPI or large screens, you can manually change the menubar font size by editing the data file, or simply click "Debug > Cycle GUI Style".
=== Using the keyboard and/or mouse ===
Users with limited access to a joystick or other controllers sometimes use the keyboard or mouse to control their aircraft. Using the keyboard to fly can be difficult and the mouse is recommended over the keyboard for flying, yet even a cheap joystick would improve the experience so much.
To get help with keyboard commands, with FlightGear running, go to the ''Help'' menu, look under ''Basic Keys'' (for simulator related commands) and ''Common Aircraft Keys'' (for commands universal to all aircraft) and ''Aircraft Help'' (for key commands specific to your aircraft). If the main menu is hidden, press F10.
To use the mouse to fly the aircraft, press Tab (the cursor should change to a cross) and move the mouse to direct the aircraft. Press Tab again to look around (cursor should show a two sided arrow), and press Tab again to return to normal mode, used to click stuff in the cockpit. You can click "File > Input Devices > Mouse Config" to adjust the mouse sensitivity.
For most users lacking a rudder axis control, it’s difficult to manually coordinate aileron and rudder movements during a turn. To enable auto-coordination and make flight easier, you may click "Settings", then click the "Show more" button on the right of "General", and finally click "Enable auto-coordination" in the launcher.
=== First time in the cockpit ===
Finding your way around the cockpit may be challenging the first time.
You can use Ctrl+V to switch to the cockpit view. If the text on the panel are too small, you can use the ''view'' mode of the mouse (press Tab until you get a cursor shaped like a double arrow) to pan and the mouse wheel to zoom, or pan with the joystick hat and zoom with X and Shift+X.
One of the first steps that many take on entering an unfamiliar cockpit is to press Ctrl+C to highlight all the "hotspots", that is instrument controls, buttons, knobs, etc. Many aircraft also offer a specific help menu.
Some functions, such as starter or magneto, may be difficult to use or simply lack clickable "hotspots", especially in aircraft models which are in development. In most cases you can use the keyboard. The keyboard always work according to the assignments listed on the "Help > Aircraft help" or "Help > Common aircraft keys" menu, but sometimes some keys are reassigned by an aircraft or configuration. Again, remember to check all the help dialogs.
=== Starting the engine ===
You are eager to fly, but the engine is off. Well, turning on the engines is not always easy. Most aircraft have an ''autostart'' entry in their custom menu, but here is a general procedure that should work in many cases:
In general to start the engine on a piston-engine type aircraft, you need (after making sure the game is not paused p):
# Fuel: Some aircraft start the simulation with no fuel. You can add it in ''Equipment'' > ''Fuel and Payload''.
# Correct fuel mixture: This is generally ''rich'', so push the red knob all the way in, or use the key m to enrich (Shift+m leans.)
# Magnetos set on ''both'': Turn the key or press } ''three times'' to move through ''R'', ''L'', ''Both''.
# Throttle: Some engines start better with a little gas.
# Run the starter: Click the ''Start'' position of the key on the panel, or press s. Hold the starter for sufficient time, even 10 seconds.
Starting all engines in a multi-engine aircraft is similar to the single engine - except you must follow the same start sequence for each and every engine. FlightGear provides a convenient way to do this for all engines at once: Press ~ and all the procedure above will work for all the engines. Note though that the default 2D panel is connected to ''only one engine'' and the ~ trick might not work. Also, give some gas to be sure that all the engines are on.
These instructions may not work for jet aircraft, helicopters, or other types of aircraft with complex start procedures. Check the instructions in the aircraft help menu (press ?) and/or look at the aircraft's article on this wiki. In general to start the engine on a jet engine type aircraft, you need to:
# Set cutoff ''ON''
# Engage the starter
# Once the engines spools up to approximately 5% N1, set cutoff ''OFF''
# Disengage the starter once the engine has reached operational speed
== Learning to fly ==
=== FlightGear's Manual ===
FlightGear has an [https://www.flightgear.org/support/manual official manual] that covers the basics of flight. As a beginner, you may want to start with "Chapter 8: A Basic Flight Simulator Tutorial."
=== Tutorials ===
Many aircraft have their own interactive tutorials. With tutorials, you can learn to operate particular aircraft but also learn to fly. You can access tutorials by going to ''Help'' > ''Tutorial''. A great place to start is the tutorial for the Cessna 172P aircraft, commonly used in real life to learn to fly fixed-winged aircraft.
If the tutorial starts without a runway and surrounded by water, your setup of FlightGear is missing the scenery for the airport at which the tutorial was supposed to run. To get scenery see the #Getting scenery section above.
== Making your first flight ==
=== Realism ===
One of the most frequent questions novice pilots ask about any flight simulator, but more so to FlightGear, is "Why is my aircraft turning left all the time?" Although it could be due to wind gusts crossing the runway, it is more likely due to the propeller torque and p-factor.
In certain other flight simulators, despite marketing slogans to the contrary, some settings are turned down to make the aircraft easier to fly. This reduces effects such as the above. The realism is always turned up in FlightGear.
Here are some of the FlightGear realism points, which may be confusing to first time pilots:
* "Left turning syndrome" for the previously mentioned reasons.
* Compass turning error: A compass, when subjected to the forces of flight, tends to turn in the opposite direction for a brief period before settling on the correct heading. This is not a malfunction (see also the Wikipedia article Aircraft compass turns).
* The Vertical Speed Indicator (VSI) is also subject to error.
* The Horizontal Situation Indicator (HSI) is driven by a gyroscope (that is why it is sometimes called a Directional Gyroscope), which is subject to ''gyro drift''. The indicator will drift from its current heading and must be periodically (every ~15 minutes) calibrated to agree with the magnetic compass heading.
* You cannot just cancel a turn or climb by centering the yoke or stick. You must turn or push the stick the other way to get to level and level flight. But even then, the plane will not maintain its altitude or heading by itself. A common mistake is trying to find a hands off yoke position. While with trimming one could leave the plane for a couple of seconds, one must use autopilot or constantly adjust the yoke.
Many forces act on an aircraft in flight as well as on the avionics and instruments used for control and navigation, and may be counter-intuitive. Pilots must learn to recognize these phenomena and compensate for their effects. ''FlightGear models instrument errors that exist in the real world''. If you don't want it, press h to enable the HUD.
=== Airports and navigation aids ===
When you first start FlightGear, whether from the command line or the graphical interface of the launchers, you may wonder how to determine what airports are available. The launcher displays a list of airports, but you will not see details such as tower or ILS frequencies. You will not find a map showing VORs and their frequencies. What can you do? See Getting aeronautical charts.
In-sim, there is a map you can use in ''Main Menu'' > ''Equipment'' > ''Map'', which will allow you to see navigation data and the position of airports and aids. For more help with navigation see Understanding navigation.
=== Flying using the autopilot ===
A generic autopilot is available from the ''Autopilot > Autopilot Settings'' menu, while many aircraft come with their own ''specific'' autopilot, frequently a model of the real life one.
For aircraft that provide their own autopilot, you should use the autopilot controls available in the virtual cockpit. This means clicking on the instrument panel in the virtual cockpit. The Autopilot menu may be grayed out and unavailable when the aircraft supplies its own autopilot in some aircraft, including the Airbuses and the C172P.
The Cessna 172 comes with a Bendix/King KAP140 Autopilot in its virtual cockpit. You can use both the autopilot device in the cockpit and the autopilot settings from the menu.
== Advanced ==
=== Flying ===
* If you continue to fly light civilian aircraft, Cessna 182S which is more complex than C172P and PA28 are good choices.
* If you are interested in flying airlines, Airbus A320 family, Boeing 777/787, MD-11 and MD-80 are suggested.
* If you are fascinated by fighter aircrafts, choose a highly rated military aircraft (such as F-16/F-15), and enable multiplayer damage or install Bombable.
* If you switch to helicopters, it is recommended to fly Eurocopter EC130 B4.
Besides common aircraft, there are also detailed space shuttles available.
=== Scenery ===
It is fascinating to explore the scenery (or just test the graphics/frame rate) with UFO. First of all, increase your graphics quality. If you don't see buildings initially, keep FG open and wait for a while for [https://wiki.flightgear.org/TerraSync TerraSync] to finish downloading and for the buildings to appear.
There are plenty of well-developed airports and scenery areas. You can also explore the scenery objects on the model map.
=== Multiplayer ===
FlightGear has some multiplayer servers that will let you fly in more lively skies, see [https://wiki.flightgear.org/Howto:Multiplayer Howto:Multiplayer]. There are also OpenRadar and ATC-pie, standalone programs that will let you be an air traffic controller.
There is also a multiplayer map that lets you see who is online right now, and even what navaids are nearby.
=== Addons ===
FlightGear has a lot of third-party [https://wiki.flightgear.org/Addon addons] containing enhancements. For beginners, Logbook and Which Runway may be the most useful addons.<ref>https://wiki.flightgear.org/New_to_FlightGear</ref>
== References ==
{{Reflist}}
{{BookCat}}
p015rpih79ivbiyqhgbcst2egjhd3s1
4640490
4640489
2026-06-17T05:03:37Z
Fcbs3
3546790
/* Starting FlightGear */
4640490
wikitext
text/x-wiki
This page will introduce how to get started with FlightGear, based on the content of FlightGear Wiki.
== Running FlightGear ==
=== Starting FlightGear ===
The easiest way to start FlightGear is to use the desktop icon. This starts the graphical interface FlightGear Qt launcher where you can choose aircraft, start position etc. Remember the Qt launcher only has basic options to get you started. A lot of options for graphics, scenery, weather, environment, input devices etc. are available from the menu inside the simulator.
Many users choose however to start FlightGear directly from the command line. The executable name is <code>fgfs</code> and can be run without options. If it is "not found", it is likely not in your path. The location depends on your particular system and choices you made during compile and installation. There is a list of [[FlightGear Flight Simulator/Technical/Command line options|command line parameters]] which must be used to change many options, like the aircraft you want. The most important:
fgfs --launcher # opens the FlightGear Qt launcher
fgfs --show-aircraft # displays a list of installed aircraft
fgfs --aircraft=c172p # start FG with the aircraft "c172p" (from the list)
The Qt launcher also lets users add command line parameters for options that are normally changed from the menu inside the simulator, as well as quite advanced options that are only available from the command line.
=== Configuring rendering and UI ===
[[File:FlightGear Rendering options 2024.1.png|thumb|Rendering options]]
If your render quality or framerate is too low, click "View > Rendering Options" to adjust the graphic settings. For newer hardware, it's recommended to set "graphics quality" to high and check "use disk space for faster loading", "animated jetways" and "satellite photoscenery".
If the menu text appears too small on high DPI or large screens, you can manually change the menubar font size by editing the data file, or simply click "Debug > Cycle GUI Style".
=== Using the keyboard and/or mouse ===
Users with limited access to a joystick or other controllers sometimes use the keyboard or mouse to control their aircraft. Using the keyboard to fly can be difficult and the mouse is recommended over the keyboard for flying, yet even a cheap joystick would improve the experience so much.
To get help with keyboard commands, with FlightGear running, go to the ''Help'' menu, look under ''Basic Keys'' (for simulator related commands) and ''Common Aircraft Keys'' (for commands universal to all aircraft) and ''Aircraft Help'' (for key commands specific to your aircraft). If the main menu is hidden, press F10.
To use the mouse to fly the aircraft, press Tab (the cursor should change to a cross) and move the mouse to direct the aircraft. Press Tab again to look around (cursor should show a two sided arrow), and press Tab again to return to normal mode, used to click stuff in the cockpit. You can click "File > Input Devices > Mouse Config" to adjust the mouse sensitivity.
For most users lacking a rudder axis control, it’s difficult to manually coordinate aileron and rudder movements during a turn. To enable auto-coordination and make flight easier, you may click "Settings", then click the "Show more" button on the right of "General", and finally click "Enable auto-coordination" in the launcher.
=== First time in the cockpit ===
Finding your way around the cockpit may be challenging the first time.
You can use Ctrl+V to switch to the cockpit view. If the text on the panel are too small, you can use the ''view'' mode of the mouse (press Tab until you get a cursor shaped like a double arrow) to pan and the mouse wheel to zoom, or pan with the joystick hat and zoom with X and Shift+X.
One of the first steps that many take on entering an unfamiliar cockpit is to press Ctrl+C to highlight all the "hotspots", that is instrument controls, buttons, knobs, etc. Many aircraft also offer a specific help menu.
Some functions, such as starter or magneto, may be difficult to use or simply lack clickable "hotspots", especially in aircraft models which are in development. In most cases you can use the keyboard. The keyboard always work according to the assignments listed on the "Help > Aircraft help" or "Help > Common aircraft keys" menu, but sometimes some keys are reassigned by an aircraft or configuration. Again, remember to check all the help dialogs.
=== Starting the engine ===
You are eager to fly, but the engine is off. Well, turning on the engines is not always easy. Most aircraft have an ''autostart'' entry in their custom menu, but here is a general procedure that should work in many cases:
In general to start the engine on a piston-engine type aircraft, you need (after making sure the game is not paused p):
# Fuel: Some aircraft start the simulation with no fuel. You can add it in ''Equipment'' > ''Fuel and Payload''.
# Correct fuel mixture: This is generally ''rich'', so push the red knob all the way in, or use the key m to enrich (Shift+m leans.)
# Magnetos set on ''both'': Turn the key or press } ''three times'' to move through ''R'', ''L'', ''Both''.
# Throttle: Some engines start better with a little gas.
# Run the starter: Click the ''Start'' position of the key on the panel, or press s. Hold the starter for sufficient time, even 10 seconds.
Starting all engines in a multi-engine aircraft is similar to the single engine - except you must follow the same start sequence for each and every engine. FlightGear provides a convenient way to do this for all engines at once: Press ~ and all the procedure above will work for all the engines. Note though that the default 2D panel is connected to ''only one engine'' and the ~ trick might not work. Also, give some gas to be sure that all the engines are on.
These instructions may not work for jet aircraft, helicopters, or other types of aircraft with complex start procedures. Check the instructions in the aircraft help menu (press ?) and/or look at the aircraft's article on this wiki. In general to start the engine on a jet engine type aircraft, you need to:
# Set cutoff ''ON''
# Engage the starter
# Once the engines spools up to approximately 5% N1, set cutoff ''OFF''
# Disengage the starter once the engine has reached operational speed
== Learning to fly ==
=== FlightGear's Manual ===
FlightGear has an [https://www.flightgear.org/support/manual official manual] that covers the basics of flight. As a beginner, you may want to start with "Chapter 8: A Basic Flight Simulator Tutorial."
=== Tutorials ===
Many aircraft have their own interactive tutorials. With tutorials, you can learn to operate particular aircraft but also learn to fly. You can access tutorials by going to ''Help'' > ''Tutorial''. A great place to start is the tutorial for the Cessna 172P aircraft, commonly used in real life to learn to fly fixed-winged aircraft.
If the tutorial starts without a runway and surrounded by water, your setup of FlightGear is missing the scenery for the airport at which the tutorial was supposed to run. To get scenery see the #Getting scenery section above.
== Making your first flight ==
=== Realism ===
One of the most frequent questions novice pilots ask about any flight simulator, but more so to FlightGear, is "Why is my aircraft turning left all the time?" Although it could be due to wind gusts crossing the runway, it is more likely due to the propeller torque and p-factor.
In certain other flight simulators, despite marketing slogans to the contrary, some settings are turned down to make the aircraft easier to fly. This reduces effects such as the above. The realism is always turned up in FlightGear.
Here are some of the FlightGear realism points, which may be confusing to first time pilots:
* "Left turning syndrome" for the previously mentioned reasons.
* Compass turning error: A compass, when subjected to the forces of flight, tends to turn in the opposite direction for a brief period before settling on the correct heading. This is not a malfunction (see also the Wikipedia article Aircraft compass turns).
* The Vertical Speed Indicator (VSI) is also subject to error.
* The Horizontal Situation Indicator (HSI) is driven by a gyroscope (that is why it is sometimes called a Directional Gyroscope), which is subject to ''gyro drift''. The indicator will drift from its current heading and must be periodically (every ~15 minutes) calibrated to agree with the magnetic compass heading.
* You cannot just cancel a turn or climb by centering the yoke or stick. You must turn or push the stick the other way to get to level and level flight. But even then, the plane will not maintain its altitude or heading by itself. A common mistake is trying to find a hands off yoke position. While with trimming one could leave the plane for a couple of seconds, one must use autopilot or constantly adjust the yoke.
Many forces act on an aircraft in flight as well as on the avionics and instruments used for control and navigation, and may be counter-intuitive. Pilots must learn to recognize these phenomena and compensate for their effects. ''FlightGear models instrument errors that exist in the real world''. If you don't want it, press h to enable the HUD.
=== Airports and navigation aids ===
When you first start FlightGear, whether from the command line or the graphical interface of the launchers, you may wonder how to determine what airports are available. The launcher displays a list of airports, but you will not see details such as tower or ILS frequencies. You will not find a map showing VORs and their frequencies. What can you do? See Getting aeronautical charts.
In-sim, there is a map you can use in ''Main Menu'' > ''Equipment'' > ''Map'', which will allow you to see navigation data and the position of airports and aids. For more help with navigation see Understanding navigation.
=== Flying using the autopilot ===
A generic autopilot is available from the ''Autopilot > Autopilot Settings'' menu, while many aircraft come with their own ''specific'' autopilot, frequently a model of the real life one.
For aircraft that provide their own autopilot, you should use the autopilot controls available in the virtual cockpit. This means clicking on the instrument panel in the virtual cockpit. The Autopilot menu may be grayed out and unavailable when the aircraft supplies its own autopilot in some aircraft, including the Airbuses and the C172P.
The Cessna 172 comes with a Bendix/King KAP140 Autopilot in its virtual cockpit. You can use both the autopilot device in the cockpit and the autopilot settings from the menu.
== Advanced ==
=== Flying ===
* If you continue to fly light civilian aircraft, Cessna 182S which is more complex than C172P and PA28 are good choices.
* If you are interested in flying airlines, Airbus A320 family, Boeing 777/787, MD-11 and MD-80 are suggested.
* If you are fascinated by fighter aircrafts, choose a highly rated military aircraft (such as F-16/F-15), and enable multiplayer damage or install Bombable.
* If you switch to helicopters, it is recommended to fly Eurocopter EC130 B4.
Besides common aircraft, there are also detailed space shuttles available.
=== Scenery ===
It is fascinating to explore the scenery (or just test the graphics/frame rate) with UFO. First of all, increase your graphics quality. If you don't see buildings initially, keep FG open and wait for a while for [https://wiki.flightgear.org/TerraSync TerraSync] to finish downloading and for the buildings to appear.
There are plenty of well-developed airports and scenery areas. You can also explore the scenery objects on the model map.
=== Multiplayer ===
FlightGear has some multiplayer servers that will let you fly in more lively skies, see [https://wiki.flightgear.org/Howto:Multiplayer Howto:Multiplayer]. There are also OpenRadar and ATC-pie, standalone programs that will let you be an air traffic controller.
There is also a multiplayer map that lets you see who is online right now, and even what navaids are nearby.
=== Addons ===
FlightGear has a lot of third-party [https://wiki.flightgear.org/Addon addons] containing enhancements. For beginners, Logbook and Which Runway may be the most useful addons.<ref>https://wiki.flightgear.org/New_to_FlightGear</ref>
== References ==
{{Reflist}}
{{BookCat}}
9zz1wzoe9tn51bx1yybj1vlflfmv377
FlightGear Flight Simulator/Contributing
0
483340
4640484
4637462
2026-06-17T04:27:29Z
Fcbs3
3546790
4640484
wikitext
text/x-wiki
This page introduces the FlightGear community and explains how to contribute to its source repository.
== The FlightGear community ==
* The official manual: flightgear.org/support/manual
* FlightGear wiki: wiki.flightgear.org/
* Forum: forum.flightgear.org/
* Discord: discord.gg/rzuV2DR
* Source code: gitlab.com/flightgear
== How you can help ==
A typical way is:
=== Easy ===
* Join and participate in the Discord server
* ...
=== Medium ===
* Contribute issues or small merge requests to the source repository
* Fix a simple bug in your aircraft (e.g., a line of Nasal script)
* ...
=== Advanced ===
* Help develop third-party aircraft (modeling and coding)
* Contribute to the core codebase (requires C++)
* ...
See https://wiki.flightgear.org/Volunteer for more info.
{{BookCat}}
e61uxoqch91v58mfp8zhoo47kxjq2w0
4640485
4640484
2026-06-17T04:28:49Z
Fcbs3
3546790
4640485
wikitext
text/x-wiki
This page introduces the FlightGear community and explains how to contribute to its source repository.
== The FlightGear community ==
* The official manual: flightgear.org/support/manual
* FlightGear wiki: wiki.flightgear.org/
* Forum: forum.flightgear.org/
* Discord: discord.gg/rzuV2DR
* Source code: gitlab.com/flightgear
== How you can help ==
A typical way is:
=== Easy ===
* Join and participate in the Discord server
* ...
=== Medium ===
* Contribute issues or small merge requests to the source repository
* Fix a simple bug in your aircraft (e.g., a line of Nasal script)
* ...
=== Advanced ===
* Help develop third-party aircraft (modeling and coding)
* Contribute to the core codebase (requires C++)
* ...
See the [https://wiki.flightgear.org/Volunteer Volunteer] page in FlightGear Wiki for more info.
{{BookCat}}
0kxixh72burcoey0y7dv6ssn1enzq7o
4640486
4640485
2026-06-17T04:29:53Z
Fcbs3
3546790
/* The FlightGear community */
4640486
wikitext
text/x-wiki
This page introduces the FlightGear community and explains how to contribute to its source repository.
== The FlightGear community ==
* The official manual: [https://flightgear.org/support/manual flightgear.org/support/manual]
* FlightGear wiki: [https://wiki.flightgear.org/ wiki.flightgear.org]
* Forum: [https://forum.flightgear.org/ forum.flightgear.org]
* Discord: [https://discord.gg/rzuV2DR discord.gg/rzuV2DR]
* Source code: [https://gitlab.com/flightgear gitlab.com/flightgear]
== How you can help ==
A typical way is:
=== Easy ===
* Join and participate in the Discord server
* ...
=== Medium ===
* Contribute issues or small merge requests to the source repository
* Fix a simple bug in your aircraft (e.g., a line of Nasal script)
* ...
=== Advanced ===
* Help develop third-party aircraft (modeling and coding)
* Contribute to the core codebase (requires C++)
* ...
See the [https://wiki.flightgear.org/Volunteer Volunteer] page in FlightGear Wiki for more info.
{{BookCat}}
cnt77k9acc0rxn0j10h9lu9v8ej6wgi
4640492
4640486
2026-06-17T05:05:37Z
Fcbs3
3546790
/* How you can help */
4640492
wikitext
text/x-wiki
This page introduces the FlightGear community and explains how to contribute to its source repository.
== The FlightGear community ==
* The official manual: [https://flightgear.org/support/manual flightgear.org/support/manual]
* FlightGear wiki: [https://wiki.flightgear.org/ wiki.flightgear.org]
* Forum: [https://forum.flightgear.org/ forum.flightgear.org]
* Discord: [https://discord.gg/rzuV2DR discord.gg/rzuV2DR]
* Source code: [https://gitlab.com/flightgear gitlab.com/flightgear]
== How you can help ==
=== Easy ===
* Join and participate in the Discord server
* ...
=== Medium ===
* Contribute issues or small merge requests to the source repository
* Fix a simple bug in your aircraft (e.g., a line of Nasal script)
* ...
=== Advanced ===
* Help develop third-party aircraft (modeling and coding)
* Contribute to the core codebase (requires C++)
* ...
See the [https://wiki.flightgear.org/Volunteer Volunteer] page in FlightGear Wiki for more info.
{{BookCat}}
rg3me0pq8bt63ww7zha1gctu0byyx79
4640493
4640492
2026-06-17T05:05:54Z
Fcbs3
3546790
/* Medium */
4640493
wikitext
text/x-wiki
This page introduces the FlightGear community and explains how to contribute to its source repository.
== The FlightGear community ==
* The official manual: [https://flightgear.org/support/manual flightgear.org/support/manual]
* FlightGear wiki: [https://wiki.flightgear.org/ wiki.flightgear.org]
* Forum: [https://forum.flightgear.org/ forum.flightgear.org]
* Discord: [https://discord.gg/rzuV2DR discord.gg/rzuV2DR]
* Source code: [https://gitlab.com/flightgear gitlab.com/flightgear]
== How you can help ==
=== Easy ===
* Join and participate in the Discord server
* ...
=== Medium ===
* Contribute issues or small merge requests to the source repository
* Fix a simple bug in your aircraft (e.g., a Nasal script)
* ...
=== Advanced ===
* Help develop third-party aircraft (modeling and coding)
* Contribute to the core codebase (requires C++)
* ...
See the [https://wiki.flightgear.org/Volunteer Volunteer] page in FlightGear Wiki for more info.
{{BookCat}}
5fkajel1ck13phpge2erffkbs7c41sa
FlightGear Flight Simulator/Technical/Property tree
0
483344
4640483
4638327
2026-06-17T04:23:34Z
Fcbs3
3546790
key /
4640483
wikitext
text/x-wiki
The '''property tree''' is considered [[wikipedia:FlightGear|FlightGear]]'s central nervous system and one of its greatest assets.<ref>https://wiki.flightgear.org/Property_tree</ref> There is also a property browser for browsing and modifying all properties (which is also useful for singleplayer cheating). You can press the <code>/</code> key to open the property browser.<ref>https://wiki.flightgear.org/Property_browser</ref>
== Annunciators ==
The /instrumentation/annunciators section shall provide a central place for
* aircrafts to write annunciator status data
* 3D aircraft models and external devices (like joysticks, yokes, throttle quadrants or custom made cockpit hardware) to read such data and drive status lights etc.
Some of the props are automatically calculated by property rules in <code>$FGDATA/Aircraft/Generic/generic-annunciators.xml</code> (available since FG 2024.1) other properties have to be calculated by the actual aircraft.
The aircraft.nas module provides aircraft.light which allows easy implementation of blinking lights. Such lights have a bool property 'state' which tells if the light is on or off.<pre>
/instrumentation/annunciators/doors
/instrumentation/annunciators/master-caution/state # aircraft.light
/instrumentation/annunciators/master-warning/state # aircraft.light
/instrumentation/annunciators/autoflight/ap/enabled
/instrumentation/annunciators/autoflight/ap/mode/alt
/instrumentation/annunciators/autoflight/ap/mode/apr
/instrumentation/annunciators/autoflight/ap/mode/hdg
/instrumentation/annunciators/autoflight/ap/mode/ias
/instrumentation/annunciators/autoflight/ap/mode/nav
/instrumentation/annunciators/autoflight/ap/mode/rev
/instrumentation/annunciators/autoflight/ap/mode/vs
/instrumentation/annunciators/autoflight/flightdirector/enabled
/instrumentation/annunciators/engines/
/instrumentation/annunciators/engines/apu/enabled
/instrumentation/annunciators/engines/apu/fire
# summary props, 'sum' of all engines
/instrumentation/annunciators/engines/fire
/instrumentation/annunciators/engines/oil-pressure-low
/instrumentation/annunciators/engines/starter
# for <gear-name> in {nose, left, right}
/instrumentation/annunciators/gear/<gear-name>/down
/instrumentation/annunciators/gear/<gear-name>/in-transition
/instrumentation/annunciators/gear/<gear-name>/unsafe
/instrumentation/annunciators/gear/<gear-name>/up
# gear summary
/instrumentation/annunciators/gear/down
/instrumentation/annunciators/gear/in-transition
/instrumentation/annunciators/gear/unsafe
/instrumentation/annunciators/gear/up
/instrumentation/annunciators/gear/parking-brake
/instrumentation/annunciators/systems/anti-ice/enabled
/instrumentation/annunciators/systems/fuel/aux-pump
/instrumentation/annunciators/systems/fuel/pressure-low
/instrumentation/annunciators/systems/fuel/system[]/pressure-low
/instrumentation/annunciators/systems/hyd/pressure-low
/instrumentation/annunciators/systems/hyd/system[]/pressure-low
/instrumentation/annunciators/systems/vacuum
</pre>
== Consumables ==
:''See also'' [[#Fuel]]
<pre>
/consumables/fuel/tank[%d]/level-lb
/consumables/fuel/tank[%d]/level-lbs
/consumables/fuel/tank[%d]/level-gal_us
/consumables/fuel/tank[%d]/capacity-gal_us
/consumables/fuel/tank[%d]/density-ppg
/consumables/fuel/total-fuel-lbs
/consumables/fuel/total-gal_us
</pre>
== Controls ==
These properties are meant to represent the various cockpit controls (levers, switches, buttons, etc.). Consider these as the pilots input.
=== Recommended usage ===
* Animation of control elements (levers, switches, etc) themself in the 3D model of the cockpit
* As input to aircraft system simulation, e.g. hydraulics or electrical systems
Avoid refering to control props directly for animating parts of the 3D model if there is an aircraft system (electric, hydraulic, ...) involved.
Better use XML property rules (e.g. logic or filter) that calculate the component state from /controls/foo as well as "power available", "component is serviceable" etc.
=== Anti-ice ===
These properties control the various anti-ice properties that may be present in an aircraft.
<pre>
/controls/anti-ice/wing-heat
/controls/anti-ice/pitot-heat
/controls/anti-ice/wiper
/controls/anti-ice/window-heat
/controls/anti-ice/engine[%d]/carb-heat
/controls/anti-ice/engine[%d]/inlet-heat
</pre>
=== APU ===
These properties control any auxiliary power unit, in essence a small turbine engine driving generators, hydraulic pumps etc. before and after the aircraft's engines are up an running.
<pre>
/controls/APU/off-start-run
/controls/APU/fire-switch
</pre>
=== Armament ===
<pre>
/controls/armament/master-arm
/controls/armament/station-select
/controls/armament/release-all
/controls/armament/station[%d]/stick-size
/controls/armament/station[%d]/release-stick
/controls/armament/station[%d]/release-all
/controls/armament/station[%d]/jettison-all
</pre>
=== Autoflight ===
These properties control the autopilot on certain airplanes.
<pre>
/controls/autoflight/autopilot[%d]/engage
/controls/autoflight/autothrottle-arm
/controls/autoflight/autothrottle-engage
/controls/autoflight/heading-select
/controls/autoflight/altitude-select
/controls/autoflight/bank-angle-select
/controls/autoflight/vertical-speed-select
/controls/autoflight/speed-select
/controls/autoflight/mach-select
/controls/autoflight/vertical-mode
/controls/autoflight/lateral-mode
</pre>
=== Electric ===
Control elements for electrical systems like battery, generators/alternators, avionics etc.
<pre>
/controls/electric/battery-switch
/controls/electric/external-power
/controls/electric/APU-generator
/controls/electric/engine[%d]/generator
/controls/electric/engine[%d]/bus-tie
/controls/electric/avionics[%d]
</pre>
{{Note|/controls/electric/APU-generator should be aliased to /controls/electric/engine[%d]/generator (where %d is the index of the engine representing the APU) by the aircraft code.}}
=== Engines ===
Engines are numbered engine[0] for a single engine to engine[0] to engine[3] for a 747 for example. (The model allows for up to 12 engines rumour has it ;-)
<pre>
/controls/engines/throttle_idle
/controls/engines/engine[%d]/throttle
/controls/engines/engine[%d]/starter
/controls/engines/engine[%d]/fuel-pump
/controls/engines/engine[%d]/fire-switch
/controls/engines/engine[%d]/fire-bottle-discharge
/controls/engines/engine[%d]/cutoff
/controls/engines/engine[%d]/mixture
/controls/engines/engine[%d]/propeller-pitch
/controls/engines/engine[%d]/magnetos
/controls/engines/engine[%d]/boost
/controls/engines/engine[%d]/WEP
/controls/engines/engine[%d]/cowl-flaps-norm
/controls/engines/engine[%d]/feather
/controls/engines/engine[%d]/ignition
/controls/engines/engine[%d]/augmentation
/controls/engines/engine[%d]/afterburner
/controls/engines/engine[%d]/reverser
/controls/engines/engine[%d]/water-injection
/controls/engines/engine[%d]/condition
</pre>
=== Flight controls ===
These properties control the flight controls surfaces, though often through a mechanical, analog or digital flight control system (FCS) that may or may not be modeled.
<pre>
/controls/flight/aileron
/controls/flight/aileron-trim
/controls/flight/elevator
/controls/flight/elevator-trim
/controls/flight/rudder
/controls/flight/rudder-trim
/controls/flight/flaps
/controls/flight/slats
/controls/flight/BLC // Boundary Layer Control
/controls/flight/spoilers
/controls/flight/speedbrake
/controls/flight/wing-sweep
/controls/flight/wing-fold
/controls/flight/drag-chute
</pre>
The positions of the controls are usually put in <code>/surface-positions/</code> at the discretion of the aircraft designer. These usually drive the animations of the control surfaces. They are either normalized (like <code>/surface-positions/elevator-pos-norm</code>) or in degrees, and sometimes the aileron is split left/right.
=== Fuel ===
<pre>
/controls/fuel/dump-valve
/controls/fuel/tank[%d]/fuel_selector
/controls/fuel/tank[%d]/to_engine
/controls/fuel/tank[%d]/to_tank
/controls/fuel/tank[%d]/boost-pump[%d]
</pre>
=== Gear ===
<pre>
/controls/gear/brake-left
/controls/gear/brake-right
/controls/gear/brake-parking
/controls/gear/steering // Used if rudder is not sufficient for control of steering
/controls/gear/gear-down
/controls/gear/antiskid // Deprecated?
/controls/gear/tailhook
/controls/gear/tailwheel-lock
/controls/gear/wheel[%d]/alternate-extension
</pre>
=== Hydraulics ===
<pre>
/controls/hydraulic/system[%d]/engine-pump
/controls/hydraulic/system[%d]/electric-pump
</pre>
=== Lights ===
<pre>
/controls/lighting/landing-lights
/controls/lighting/turn-off-lights
/controls/lighting/formation-lights
/controls/lighting/taxi-light
/controls/lighting/logo-lights
/controls/lighting/nav-lights
/controls/lighting/beacon
/controls/lighting/strobe
/controls/lighting/panel-norm
/controls/lighting/instruments-norm
/controls/lighting/dome-norm
</pre>
=== Pneumatic ===
<pre>
/controls/pneumatic/APU-bleed
/controls/pneumatic/engine[%d]/bleed
</pre>
=== Pressurization ===
<pre>
/controls/pressurization/mode
/controls/pressurization/dump
/controls/pressurization/outflow-valve
/controls/pressurization/pack[%d]/pack-on
</pre>
=== Seat ===
<pre>
/controls/seat/vertical-adjust
/controls/seat/fore-aft-adjust
/controls/seat/cmd_selector_valve
/controls/seat/eject[%d]/initiate
/controls/seat/eject[%d]/status
</pre>
== Engines ==
=== Common ===
<pre>
/engines/engine[%d]/fuel-flow-gph
/engines/engine[%d]/fuel-flow_pph
/engines/engine[%d]/thrust_lb
/engines/engine[%d]/running
/engines/engine[%d]/starter
/engines/engine[%d]/cranking
/engines/engine[%d]/fire
</pre>
=== Turbine ===
<pre>
/engines/engine[%d]/n1
/engines/engine[%d]/n2
/engines/engine[%d]/epr
/engines/engine[%d]/augmentation
/engines/engine[%d]/water-injection
/engines/engine[%d]/ignition
/engines/engine[%d]/nozzle-pos-norm
/engines/engine[%d]/inlet-pos-norm
/engines/engine[%d]/reversed
/engines/engine[%d]/cutoff
</pre>
=== Piston ===
<pre>
/engines/engine[%d]/mp-osi
/engines/engine[%d]/egt-degf
/engines/engine[%d]/oil-temperature-degf
/engines/engine[%d]/oil-pressure-psi
/engines/engine[%d]/cht-degf
/engines/engine[%d]/rpm
</pre>
=== Propeller ===
<pre>
/engines/engine[%d]/rpm
/engines/engine[%d]/pitch
/engines/engine[%d]/torque
</pre>
== Flight Dynamics Model ==
=== Position ===
This will return the current position of the aircraft within FlightGear. This is also the stuff that is transmitted in multiplayer.
<pre>
/position/
/position/altitiude-ft ()
/position/altitude-agl-ft (22.46983965)
/position/altitude-ft (28.24368289)
/position/ground-elev-ft (-0.43513529)
/position/ground-elev-m (-0.1326292364)
/position/latitude-deg (37.61371436)
/position/latitude-string (37*36 49.4N)
/position/longitude-deg (-122.3576508)
/position/longitude-string (-122*21 27.5W)
/position/sea-level-radius-ft (20899648.76)
</pre>
=== Orientation ===
<pre>
/orientation/roll-deg
/orientation/pitch-deg
/orientation/heading-deg
/orientation/roll-rate-degps
/orientation/pitch-rate-degps
/orientation/yaw-rate-degps
/orientation/side-slip-rad
/orientation/side-slip-deg
/orientation/alpha-deg
</pre>
=== Velocities ===
<pre>
/velocities/airspeed-kt
/velocities/mach
/velocities/speed-north-fps
/velocities/speed-east-fps
/velocities/speed-down-fps
/velocities/uBody-fps
/velocities/vBody-fps
/velocities/wBody-fps
/velocities/vertical-speed-fps
/velocities/glideslope
</pre>
=== Acceleration ===
<pre>
/accelerations/nlf
/accelerations/ned/north-accel-fps_sec
/accelerations/ned/east-accel-fps_sec
/accelerations/ned/down-accel-fps_sec
/accelerations/pilot/x-accel-fps_sec
/accelerations/pilot/y-accel-fps_sec
/accelerations/pilot/z-accel-fps_sec
</pre>
== Gear ==
<pre>
/gear/serviceable
/gear/gear[%d]/cast-angle-deg // The angle of the wheel where 0 is pointing straight forward
/gear/gear[%d]/compression-m
/gear/gear[%d]/compression-norm
/gear/gear[%d]/ground-friction-factor
/gear/gear[%d]/ground-is-solid
/gear/gear[%d]/has-brake
/gear/gear[%d]/rollspeed-ms // Speed of the wheel's rotation in meters per second
/gear/gear[%d]/wow // Weight-on-wheel
/gear/gear[%d]/xoffset-in
/gear/gear[%d]/yoffset-in
/gear/gear[%d]/zoffset-in
</pre>
== Instrumentation ==
<pre>
/instrumentation/adf[%d]/
/instrumentation/airspeed-indicator/
/instrumentation/altimeter/
/instrumentation/annunciator/
/instrumentation/attitude-indicator/
/instrumentation/clock/
/instrumentation/comm[%d]/
/instrumentation/dme/
/instrumentation/efis/
/instrumentation/encoder/
/instrumentation/flightdirector/
/instrumentation/gps/
/instrumentation/gps-annunciator/
/instrumentation/heading-indicator/
/instrumentation/heading-indicator-fg/
/instrumentation/magnetic-compass/
/instrumentation/marker-beacon/
/instrumentation/nav[%d]/
/instrumentation/radar/
/instrumentation/slip-skid-ball/
/instrumentation/tacan[%d]/
/instrumentation/transponder/
/instrumentation/turn-indicator/
/instrumentation/vertical-speed-indicator/
/instrumentation/wxradar/
</pre>
=== Instrumentation ADF ===
<pre>
/instrumentation/adf[%d]/adf-btn
/instrumentation/adf[%d]/bro-btn
/instrumentation/adf[%d]/display-mode
/instrumentation/adf[%d]/enroute-timer/running
/instrumentation/adf[%d]/enroute-timer/start-time
/instrumentation/adf[%d]/enroute-timer/time
/instrumentation/adf[%d]/error-deg
/instrumentation/adf[%d]/flight-timer/running
/instrumentation/adf[%d]/flight-timer/start-time
/instrumentation/adf[%d]/flight-timer/time
/instrumentation/adf[%d]/flt-btn
/instrumentation/adf[%d]/frequencies/dial-1-khz
/instrumentation/adf[%d]/frequencies/dial-100-khz
/instrumentation/adf[%d]/frequencies/selected-khz
/instrumentation/adf[%d]/frequencies/standby-khz
/instrumentation/adf[%d]/frq-btn
/instrumentation/adf[%d]/ident
/instrumentation/adf[[%d]/ident-audible
/instrumentation/adf[%d]/in-range
/instrumentation/adf[%d]/indicated-bearing-deg
/instrumentation/adf[%d]/mode
/instrumentation/adf[%d]/model
/instrumentation/adf[%d]/operable
/instrumentation/adf[%d]/power-btn
/instrumentation/adf[%d]/right-display
/instrumentation/adf[%d]/rotation-deg
/instrumentation/adf[%d]/serviceable
/instrumentation/adf[%d]/set-btn
/instrumentation/adf[%d]/volume
/instrumentation/adf[%d]/volume-norm
</pre>
=== Instrumentation NAV radio ===
<pre>
/instrumentation/nav[%d]/audio-btn
/instrumentation/nav[%d]/back-course-btn
/instrumentation/nav[%d]/cdi/serviceable
/instrumentation/nav[%d]/crosstrack-error-m
/instrumentation/nav[%d]/crosstrack-heading-error-deg
/instrumentation/nav[%d]/data-is-valid
/instrumentation/nav[%d]/dme-in-range
/instrumentation/nav[%d]/filtered-cdiNAV0-deflection
/instrumentation/nav[%d]/filtered-gsNAV0-deflection
/instrumentation/nav[%d]/frequencies/dial-khz
/instrumentation/nav[%d]/frequencies/dial-mhz
/instrumentation/nav[%d]/frequencies/is-localizer-frequency
/instrumentation/nav[%d]/frequencies/selected-mhz
/instrumentation/nav[%d]/frequencies/selected-mhz-fmt
/instrumentation/nav[%d]/frequencies/standby-mhz
/instrumentation/nav[%d]/frequencies/standby-mhz-fmt
/instrumentation/nav[%d]/from-flag
/instrumentation/nav[%d]/frq-swap-btn
/instrumentation/nav[%d]/gs/serviceable
/instrumentation/nav[%d]/gs-direct-deg
/instrumentation/nav[%d]/gs-distance
/instrumentation/nav[%d]/gs-in-range
/instrumentation/nav[%d]/gs-needle-deflection
/instrumentation/nav[%d]/gs-needle-deflection-deg
/instrumentation/nav[%d]/gs-needle-deflection-norm
/instrumentation/nav[%d]/gs-rate-of-climb
/instrumentation/nav[%d]/gs-rate-of-climb-fpm
/instrumentation/nav[%d]/has-gs
/instrumentation/nav[%d]/heading-deg
/instrumentation/nav[%d]/heading-needle-deflection
/instrumentation/nav[%d]/heading-needle-deflection-norm
/instrumentation/nav[%d]/ident
/instrumentation/nav[%d]/ident-audible
/instrumentation/nav[%d]/in-range
/instrumentation/nav[%d]/nav-distance
/instrumentation/nav[%d]/nav-id
/instrumentation/nav[%d]/nav-id_asc1
/instrumentation/nav[%d]/nav-id_asc2
/instrumentation/nav[%d]/nav-id_asc3
/instrumentation/nav[%d]/nav-id_asc4
/instrumentation/nav[%d]/nav-loc
/instrumentation/nav[%d]/operable
/instrumentation/nav[%d]/power-btn
/instrumentation/nav[%d]/radials/actual-deg
/instrumentation/nav[%d]/radials/reciprocal-radial-deg
/instrumentation/nav[%d]/radials/selected-deg
/instrumentation/nav[%d]/radials/target-auto-hdg-deg
/instrumentation/nav[%d]/radials/arget-radial-deg
/instrumentation/nav[%d]/serviceable
/instrumentation/nav[%d]/signal-quality-norm
/instrumentation/nav[%d]/slaved-to-gps
/instrumentation/nav[%d]/time-to-intercept-sec
/instrumentation/nav[%d]/to-flag
/instrumentation/nav[%d]/to-from/serviceable
/instrumentation/nav[%d]/volume
</pre>
=== Instrumentation Tacan ===
<pre>
/instrumentation/tacan[%d]/display/channel
/instrumentation/tacan[%d]/display/x-shift
/instrumentation/tacan[%d]/display/y-shift
/instrumentation/tacan[%d]/frequencies/selected-channel
/instrumentation/tacan[%d]/frequencies/selected-channel[1]
/instrumentation/tacan[%d]/frequencies/selected-channel[2]
/instrumentation/tacan[%d]/frequencies/selected-channel[3]
/instrumentation/tacan[%d]/frequencies/selected-channel[4]
/instrumentation/tacan[%d]/frequencies/selected-mhz
/instrumentation/tacan[%d]/ident
/instrumentation/tacan[%d]/in-range
/instrumentation/tacan[%d]/indicated-bearing-true-deg
/instrumentation/tacan[%d]/indicated-distance-nm
/instrumentation/tacan[%d]/indicated-ground-speed-kt
/instrumentation/tacan[%d]/indicated-time-min
/instrumentation/tacan[%d]/name
/instrumentation/tacan[%d]/serviceable
/instrumentation/tacan[%d]/switch-position
</pre>
== Rotors (YASim only) ==
<pre>
/rotors/gear/torque-sound-filtered // Unused?
/rotors/gear/total-torque
/rotors/{name}/balance
/rotors/{name}/blade[%d]/flap-deg
/rotors/{name}/blade[%d]/incidence-deg
/rotors/{name}/blade[%d]/position-deg // Position relative to model
/rotors/{name}/bladesvisible // Used for animations
/rotors/{name}/cone%d-deg //e.g. cone-deg or cone2-deg
/rotors/{name}/roll-deg
/rotors/{name}/rpm
/rotors/{name}/stall
/rotors/{name}/stall-filtered
/rotors/{name}/tilt
/rotors/{name}/torque
/rotors/{name}/yaw-deg
</pre>
<ref>https://wiki.flightgear.org/Aircraft_properties_reference</ref>
== References ==
{{Reflist}}
{{BookCat}}
jilbpnv5my50wiefcwwib0ruspsjn06
4640494
4640483
2026-06-17T05:10:14Z
Fcbs3
3546790
4640494
wikitext
text/x-wiki
The '''property tree''' is considered [[wikipedia:FlightGear|FlightGear]]'s central nervous system and one of its representative assets.<ref>https://wiki.flightgear.org/Property_tree</ref> There is also a property browser for browsing and modifying all properties (which is also useful for singleplayer cheating). You can press the <code>/</code> key to open the property browser.<ref>https://wiki.flightgear.org/Property_browser</ref>
== Annunciators ==
The /instrumentation/annunciators section shall provide a central place for
* aircrafts to write annunciator status data
* 3D aircraft models and external devices (like joysticks, yokes, throttle quadrants or custom made cockpit hardware) to read such data and drive status lights etc.
Some of the props are automatically calculated by property rules in <code>$FGDATA/Aircraft/Generic/generic-annunciators.xml</code> (available since FG 2024.1) other properties have to be calculated by the actual aircraft.
The aircraft.nas module provides aircraft.light which allows easy implementation of blinking lights. Such lights have a bool property 'state' which tells if the light is on or off.<pre>
/instrumentation/annunciators/doors
/instrumentation/annunciators/master-caution/state # aircraft.light
/instrumentation/annunciators/master-warning/state # aircraft.light
/instrumentation/annunciators/autoflight/ap/enabled
/instrumentation/annunciators/autoflight/ap/mode/alt
/instrumentation/annunciators/autoflight/ap/mode/apr
/instrumentation/annunciators/autoflight/ap/mode/hdg
/instrumentation/annunciators/autoflight/ap/mode/ias
/instrumentation/annunciators/autoflight/ap/mode/nav
/instrumentation/annunciators/autoflight/ap/mode/rev
/instrumentation/annunciators/autoflight/ap/mode/vs
/instrumentation/annunciators/autoflight/flightdirector/enabled
/instrumentation/annunciators/engines/
/instrumentation/annunciators/engines/apu/enabled
/instrumentation/annunciators/engines/apu/fire
# summary props, 'sum' of all engines
/instrumentation/annunciators/engines/fire
/instrumentation/annunciators/engines/oil-pressure-low
/instrumentation/annunciators/engines/starter
# for <gear-name> in {nose, left, right}
/instrumentation/annunciators/gear/<gear-name>/down
/instrumentation/annunciators/gear/<gear-name>/in-transition
/instrumentation/annunciators/gear/<gear-name>/unsafe
/instrumentation/annunciators/gear/<gear-name>/up
# gear summary
/instrumentation/annunciators/gear/down
/instrumentation/annunciators/gear/in-transition
/instrumentation/annunciators/gear/unsafe
/instrumentation/annunciators/gear/up
/instrumentation/annunciators/gear/parking-brake
/instrumentation/annunciators/systems/anti-ice/enabled
/instrumentation/annunciators/systems/fuel/aux-pump
/instrumentation/annunciators/systems/fuel/pressure-low
/instrumentation/annunciators/systems/fuel/system[]/pressure-low
/instrumentation/annunciators/systems/hyd/pressure-low
/instrumentation/annunciators/systems/hyd/system[]/pressure-low
/instrumentation/annunciators/systems/vacuum
</pre>
== Consumables ==
:''See also'' [[#Fuel]]
<pre>
/consumables/fuel/tank[%d]/level-lb
/consumables/fuel/tank[%d]/level-lbs
/consumables/fuel/tank[%d]/level-gal_us
/consumables/fuel/tank[%d]/capacity-gal_us
/consumables/fuel/tank[%d]/density-ppg
/consumables/fuel/total-fuel-lbs
/consumables/fuel/total-gal_us
</pre>
== Controls ==
These properties are meant to represent the various cockpit controls (levers, switches, buttons, etc.). Consider these as the pilots input.
=== Recommended usage ===
* Animation of control elements (levers, switches, etc) themself in the 3D model of the cockpit
* As input to aircraft system simulation, e.g. hydraulics or electrical systems
Avoid refering to control props directly for animating parts of the 3D model if there is an aircraft system (electric, hydraulic, ...) involved.
Better use XML property rules (e.g. logic or filter) that calculate the component state from /controls/foo as well as "power available", "component is serviceable" etc.
=== Anti-ice ===
These properties control the various anti-ice properties that may be present in an aircraft.
<pre>
/controls/anti-ice/wing-heat
/controls/anti-ice/pitot-heat
/controls/anti-ice/wiper
/controls/anti-ice/window-heat
/controls/anti-ice/engine[%d]/carb-heat
/controls/anti-ice/engine[%d]/inlet-heat
</pre>
=== APU ===
These properties control any auxiliary power unit, in essence a small turbine engine driving generators, hydraulic pumps etc. before and after the aircraft's engines are up an running.
<pre>
/controls/APU/off-start-run
/controls/APU/fire-switch
</pre>
=== Armament ===
<pre>
/controls/armament/master-arm
/controls/armament/station-select
/controls/armament/release-all
/controls/armament/station[%d]/stick-size
/controls/armament/station[%d]/release-stick
/controls/armament/station[%d]/release-all
/controls/armament/station[%d]/jettison-all
</pre>
=== Autoflight ===
These properties control the autopilot on certain airplanes.
<pre>
/controls/autoflight/autopilot[%d]/engage
/controls/autoflight/autothrottle-arm
/controls/autoflight/autothrottle-engage
/controls/autoflight/heading-select
/controls/autoflight/altitude-select
/controls/autoflight/bank-angle-select
/controls/autoflight/vertical-speed-select
/controls/autoflight/speed-select
/controls/autoflight/mach-select
/controls/autoflight/vertical-mode
/controls/autoflight/lateral-mode
</pre>
=== Electric ===
Control elements for electrical systems like battery, generators/alternators, avionics etc.
<pre>
/controls/electric/battery-switch
/controls/electric/external-power
/controls/electric/APU-generator
/controls/electric/engine[%d]/generator
/controls/electric/engine[%d]/bus-tie
/controls/electric/avionics[%d]
</pre>
{{Note|/controls/electric/APU-generator should be aliased to /controls/electric/engine[%d]/generator (where %d is the index of the engine representing the APU) by the aircraft code.}}
=== Engines ===
Engines are numbered engine[0] for a single engine to engine[0] to engine[3] for a 747 for example. (The model allows for up to 12 engines rumour has it ;-)
<pre>
/controls/engines/throttle_idle
/controls/engines/engine[%d]/throttle
/controls/engines/engine[%d]/starter
/controls/engines/engine[%d]/fuel-pump
/controls/engines/engine[%d]/fire-switch
/controls/engines/engine[%d]/fire-bottle-discharge
/controls/engines/engine[%d]/cutoff
/controls/engines/engine[%d]/mixture
/controls/engines/engine[%d]/propeller-pitch
/controls/engines/engine[%d]/magnetos
/controls/engines/engine[%d]/boost
/controls/engines/engine[%d]/WEP
/controls/engines/engine[%d]/cowl-flaps-norm
/controls/engines/engine[%d]/feather
/controls/engines/engine[%d]/ignition
/controls/engines/engine[%d]/augmentation
/controls/engines/engine[%d]/afterburner
/controls/engines/engine[%d]/reverser
/controls/engines/engine[%d]/water-injection
/controls/engines/engine[%d]/condition
</pre>
=== Flight controls ===
These properties control the flight controls surfaces, though often through a mechanical, analog or digital flight control system (FCS) that may or may not be modeled.
<pre>
/controls/flight/aileron
/controls/flight/aileron-trim
/controls/flight/elevator
/controls/flight/elevator-trim
/controls/flight/rudder
/controls/flight/rudder-trim
/controls/flight/flaps
/controls/flight/slats
/controls/flight/BLC // Boundary Layer Control
/controls/flight/spoilers
/controls/flight/speedbrake
/controls/flight/wing-sweep
/controls/flight/wing-fold
/controls/flight/drag-chute
</pre>
The positions of the controls are usually put in <code>/surface-positions/</code> at the discretion of the aircraft designer. These usually drive the animations of the control surfaces. They are either normalized (like <code>/surface-positions/elevator-pos-norm</code>) or in degrees, and sometimes the aileron is split left/right.
=== Fuel ===
<pre>
/controls/fuel/dump-valve
/controls/fuel/tank[%d]/fuel_selector
/controls/fuel/tank[%d]/to_engine
/controls/fuel/tank[%d]/to_tank
/controls/fuel/tank[%d]/boost-pump[%d]
</pre>
=== Gear ===
<pre>
/controls/gear/brake-left
/controls/gear/brake-right
/controls/gear/brake-parking
/controls/gear/steering // Used if rudder is not sufficient for control of steering
/controls/gear/gear-down
/controls/gear/antiskid // Deprecated?
/controls/gear/tailhook
/controls/gear/tailwheel-lock
/controls/gear/wheel[%d]/alternate-extension
</pre>
=== Hydraulics ===
<pre>
/controls/hydraulic/system[%d]/engine-pump
/controls/hydraulic/system[%d]/electric-pump
</pre>
=== Lights ===
<pre>
/controls/lighting/landing-lights
/controls/lighting/turn-off-lights
/controls/lighting/formation-lights
/controls/lighting/taxi-light
/controls/lighting/logo-lights
/controls/lighting/nav-lights
/controls/lighting/beacon
/controls/lighting/strobe
/controls/lighting/panel-norm
/controls/lighting/instruments-norm
/controls/lighting/dome-norm
</pre>
=== Pneumatic ===
<pre>
/controls/pneumatic/APU-bleed
/controls/pneumatic/engine[%d]/bleed
</pre>
=== Pressurization ===
<pre>
/controls/pressurization/mode
/controls/pressurization/dump
/controls/pressurization/outflow-valve
/controls/pressurization/pack[%d]/pack-on
</pre>
=== Seat ===
<pre>
/controls/seat/vertical-adjust
/controls/seat/fore-aft-adjust
/controls/seat/cmd_selector_valve
/controls/seat/eject[%d]/initiate
/controls/seat/eject[%d]/status
</pre>
== Engines ==
=== Common ===
<pre>
/engines/engine[%d]/fuel-flow-gph
/engines/engine[%d]/fuel-flow_pph
/engines/engine[%d]/thrust_lb
/engines/engine[%d]/running
/engines/engine[%d]/starter
/engines/engine[%d]/cranking
/engines/engine[%d]/fire
</pre>
=== Turbine ===
<pre>
/engines/engine[%d]/n1
/engines/engine[%d]/n2
/engines/engine[%d]/epr
/engines/engine[%d]/augmentation
/engines/engine[%d]/water-injection
/engines/engine[%d]/ignition
/engines/engine[%d]/nozzle-pos-norm
/engines/engine[%d]/inlet-pos-norm
/engines/engine[%d]/reversed
/engines/engine[%d]/cutoff
</pre>
=== Piston ===
<pre>
/engines/engine[%d]/mp-osi
/engines/engine[%d]/egt-degf
/engines/engine[%d]/oil-temperature-degf
/engines/engine[%d]/oil-pressure-psi
/engines/engine[%d]/cht-degf
/engines/engine[%d]/rpm
</pre>
=== Propeller ===
<pre>
/engines/engine[%d]/rpm
/engines/engine[%d]/pitch
/engines/engine[%d]/torque
</pre>
== Flight Dynamics Model ==
=== Position ===
This will return the current position of the aircraft within FlightGear. This is also the stuff that is transmitted in multiplayer.
<pre>
/position/
/position/altitiude-ft ()
/position/altitude-agl-ft (22.46983965)
/position/altitude-ft (28.24368289)
/position/ground-elev-ft (-0.43513529)
/position/ground-elev-m (-0.1326292364)
/position/latitude-deg (37.61371436)
/position/latitude-string (37*36 49.4N)
/position/longitude-deg (-122.3576508)
/position/longitude-string (-122*21 27.5W)
/position/sea-level-radius-ft (20899648.76)
</pre>
=== Orientation ===
<pre>
/orientation/roll-deg
/orientation/pitch-deg
/orientation/heading-deg
/orientation/roll-rate-degps
/orientation/pitch-rate-degps
/orientation/yaw-rate-degps
/orientation/side-slip-rad
/orientation/side-slip-deg
/orientation/alpha-deg
</pre>
=== Velocities ===
<pre>
/velocities/airspeed-kt
/velocities/mach
/velocities/speed-north-fps
/velocities/speed-east-fps
/velocities/speed-down-fps
/velocities/uBody-fps
/velocities/vBody-fps
/velocities/wBody-fps
/velocities/vertical-speed-fps
/velocities/glideslope
</pre>
=== Acceleration ===
<pre>
/accelerations/nlf
/accelerations/ned/north-accel-fps_sec
/accelerations/ned/east-accel-fps_sec
/accelerations/ned/down-accel-fps_sec
/accelerations/pilot/x-accel-fps_sec
/accelerations/pilot/y-accel-fps_sec
/accelerations/pilot/z-accel-fps_sec
</pre>
== Gear ==
<pre>
/gear/serviceable
/gear/gear[%d]/cast-angle-deg // The angle of the wheel where 0 is pointing straight forward
/gear/gear[%d]/compression-m
/gear/gear[%d]/compression-norm
/gear/gear[%d]/ground-friction-factor
/gear/gear[%d]/ground-is-solid
/gear/gear[%d]/has-brake
/gear/gear[%d]/rollspeed-ms // Speed of the wheel's rotation in meters per second
/gear/gear[%d]/wow // Weight-on-wheel
/gear/gear[%d]/xoffset-in
/gear/gear[%d]/yoffset-in
/gear/gear[%d]/zoffset-in
</pre>
== Instrumentation ==
<pre>
/instrumentation/adf[%d]/
/instrumentation/airspeed-indicator/
/instrumentation/altimeter/
/instrumentation/annunciator/
/instrumentation/attitude-indicator/
/instrumentation/clock/
/instrumentation/comm[%d]/
/instrumentation/dme/
/instrumentation/efis/
/instrumentation/encoder/
/instrumentation/flightdirector/
/instrumentation/gps/
/instrumentation/gps-annunciator/
/instrumentation/heading-indicator/
/instrumentation/heading-indicator-fg/
/instrumentation/magnetic-compass/
/instrumentation/marker-beacon/
/instrumentation/nav[%d]/
/instrumentation/radar/
/instrumentation/slip-skid-ball/
/instrumentation/tacan[%d]/
/instrumentation/transponder/
/instrumentation/turn-indicator/
/instrumentation/vertical-speed-indicator/
/instrumentation/wxradar/
</pre>
=== Instrumentation ADF ===
<pre>
/instrumentation/adf[%d]/adf-btn
/instrumentation/adf[%d]/bro-btn
/instrumentation/adf[%d]/display-mode
/instrumentation/adf[%d]/enroute-timer/running
/instrumentation/adf[%d]/enroute-timer/start-time
/instrumentation/adf[%d]/enroute-timer/time
/instrumentation/adf[%d]/error-deg
/instrumentation/adf[%d]/flight-timer/running
/instrumentation/adf[%d]/flight-timer/start-time
/instrumentation/adf[%d]/flight-timer/time
/instrumentation/adf[%d]/flt-btn
/instrumentation/adf[%d]/frequencies/dial-1-khz
/instrumentation/adf[%d]/frequencies/dial-100-khz
/instrumentation/adf[%d]/frequencies/selected-khz
/instrumentation/adf[%d]/frequencies/standby-khz
/instrumentation/adf[%d]/frq-btn
/instrumentation/adf[%d]/ident
/instrumentation/adf[[%d]/ident-audible
/instrumentation/adf[%d]/in-range
/instrumentation/adf[%d]/indicated-bearing-deg
/instrumentation/adf[%d]/mode
/instrumentation/adf[%d]/model
/instrumentation/adf[%d]/operable
/instrumentation/adf[%d]/power-btn
/instrumentation/adf[%d]/right-display
/instrumentation/adf[%d]/rotation-deg
/instrumentation/adf[%d]/serviceable
/instrumentation/adf[%d]/set-btn
/instrumentation/adf[%d]/volume
/instrumentation/adf[%d]/volume-norm
</pre>
=== Instrumentation NAV radio ===
<pre>
/instrumentation/nav[%d]/audio-btn
/instrumentation/nav[%d]/back-course-btn
/instrumentation/nav[%d]/cdi/serviceable
/instrumentation/nav[%d]/crosstrack-error-m
/instrumentation/nav[%d]/crosstrack-heading-error-deg
/instrumentation/nav[%d]/data-is-valid
/instrumentation/nav[%d]/dme-in-range
/instrumentation/nav[%d]/filtered-cdiNAV0-deflection
/instrumentation/nav[%d]/filtered-gsNAV0-deflection
/instrumentation/nav[%d]/frequencies/dial-khz
/instrumentation/nav[%d]/frequencies/dial-mhz
/instrumentation/nav[%d]/frequencies/is-localizer-frequency
/instrumentation/nav[%d]/frequencies/selected-mhz
/instrumentation/nav[%d]/frequencies/selected-mhz-fmt
/instrumentation/nav[%d]/frequencies/standby-mhz
/instrumentation/nav[%d]/frequencies/standby-mhz-fmt
/instrumentation/nav[%d]/from-flag
/instrumentation/nav[%d]/frq-swap-btn
/instrumentation/nav[%d]/gs/serviceable
/instrumentation/nav[%d]/gs-direct-deg
/instrumentation/nav[%d]/gs-distance
/instrumentation/nav[%d]/gs-in-range
/instrumentation/nav[%d]/gs-needle-deflection
/instrumentation/nav[%d]/gs-needle-deflection-deg
/instrumentation/nav[%d]/gs-needle-deflection-norm
/instrumentation/nav[%d]/gs-rate-of-climb
/instrumentation/nav[%d]/gs-rate-of-climb-fpm
/instrumentation/nav[%d]/has-gs
/instrumentation/nav[%d]/heading-deg
/instrumentation/nav[%d]/heading-needle-deflection
/instrumentation/nav[%d]/heading-needle-deflection-norm
/instrumentation/nav[%d]/ident
/instrumentation/nav[%d]/ident-audible
/instrumentation/nav[%d]/in-range
/instrumentation/nav[%d]/nav-distance
/instrumentation/nav[%d]/nav-id
/instrumentation/nav[%d]/nav-id_asc1
/instrumentation/nav[%d]/nav-id_asc2
/instrumentation/nav[%d]/nav-id_asc3
/instrumentation/nav[%d]/nav-id_asc4
/instrumentation/nav[%d]/nav-loc
/instrumentation/nav[%d]/operable
/instrumentation/nav[%d]/power-btn
/instrumentation/nav[%d]/radials/actual-deg
/instrumentation/nav[%d]/radials/reciprocal-radial-deg
/instrumentation/nav[%d]/radials/selected-deg
/instrumentation/nav[%d]/radials/target-auto-hdg-deg
/instrumentation/nav[%d]/radials/arget-radial-deg
/instrumentation/nav[%d]/serviceable
/instrumentation/nav[%d]/signal-quality-norm
/instrumentation/nav[%d]/slaved-to-gps
/instrumentation/nav[%d]/time-to-intercept-sec
/instrumentation/nav[%d]/to-flag
/instrumentation/nav[%d]/to-from/serviceable
/instrumentation/nav[%d]/volume
</pre>
=== Instrumentation Tacan ===
<pre>
/instrumentation/tacan[%d]/display/channel
/instrumentation/tacan[%d]/display/x-shift
/instrumentation/tacan[%d]/display/y-shift
/instrumentation/tacan[%d]/frequencies/selected-channel
/instrumentation/tacan[%d]/frequencies/selected-channel[1]
/instrumentation/tacan[%d]/frequencies/selected-channel[2]
/instrumentation/tacan[%d]/frequencies/selected-channel[3]
/instrumentation/tacan[%d]/frequencies/selected-channel[4]
/instrumentation/tacan[%d]/frequencies/selected-mhz
/instrumentation/tacan[%d]/ident
/instrumentation/tacan[%d]/in-range
/instrumentation/tacan[%d]/indicated-bearing-true-deg
/instrumentation/tacan[%d]/indicated-distance-nm
/instrumentation/tacan[%d]/indicated-ground-speed-kt
/instrumentation/tacan[%d]/indicated-time-min
/instrumentation/tacan[%d]/name
/instrumentation/tacan[%d]/serviceable
/instrumentation/tacan[%d]/switch-position
</pre>
== Rotors (YASim only) ==
<pre>
/rotors/gear/torque-sound-filtered // Unused?
/rotors/gear/total-torque
/rotors/{name}/balance
/rotors/{name}/blade[%d]/flap-deg
/rotors/{name}/blade[%d]/incidence-deg
/rotors/{name}/blade[%d]/position-deg // Position relative to model
/rotors/{name}/bladesvisible // Used for animations
/rotors/{name}/cone%d-deg //e.g. cone-deg or cone2-deg
/rotors/{name}/roll-deg
/rotors/{name}/rpm
/rotors/{name}/stall
/rotors/{name}/stall-filtered
/rotors/{name}/tilt
/rotors/{name}/torque
/rotors/{name}/yaw-deg
</pre>
<ref>https://wiki.flightgear.org/Aircraft_properties_reference</ref>
== References ==
{{Reflist}}
{{BookCat}}
c08lmgy15wlze9at88xt8vj1dm7w5tu
FlightGear Flight Simulator/Advanced/Helicopters
0
483347
4640487
4635821
2026-06-17T04:33:33Z
Fcbs3
3546790
4640487
wikitext
text/x-wiki
== Preface ==
In principle everything that applies to real helicopters, applies also to helicopters in FlightGear. It is important to be familiar with fundamental helicopter manoeuvres. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence. In FlightGear it is not possible to damage a helicopter in flight.
=== Control hardware ===
==== Stick and Pitch control ====
On the hardware side a use of a good joystick is recommended: A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a force feedback joystick with a disconnected voltage supply. Further, the joystick should have a "thrust controller" (throttle).
==== Tail rotor controls ====
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by adding the flag <code>--enable-auto-coordination</code> in either the FlightGear Qt launcher or the command line.
==== Joystick ====
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections.
==== Mouse ====
A mouse can be also used. Joystick and mouse both have advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in <code>mice.xml</code> to your need. By decreasing the factor you can increase the control travel way and have less sensitive controls, which might improve the handling.
==== Keyboard ====
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!
== Getting started ==
=== Launch ===
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.
In my opinion the Bo105 is the easiest to fly, since it reacts substantially more directly than other helicopters.
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.
The Robinson R44 is also very easy to fly, although possibly unrealistically so.
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.
=== Controls ===
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called cyclic blade control. Next there is the collective blade control, which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the tail rotor is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw the helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.
=== Behavior of helicopters ===
Helicopters are naturally unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball.
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick... And so on, and so on.
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!
== Lift-Off ==
First reduce the collective to minimum. To increase the rotor thrust, you have to "pull" the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, "full power" has the thrust controller at idle. Start the engine by pressing <code>}</code>. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately centered. Wait until the rotor has finished accelerating. For the Bo105 there is an instrument for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.
Quick Reference:
# Press <code>}</code> to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.
# Disengage parking or rotor brake (if applicable).
# Wait for your turbine to come to full speed.
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.
# When at desired altitude, push throttle to about 60%.
# Fly freely.
Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.
== In the air ==
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The "neutral" position of the stick will depend upon airspeed and collective.
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, "translation lift" is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!
You may wonder about the heli banking to the side. Don't worry, that's normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away - so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have, for example while hovering. In cruise the fins will take over more and more of the work of the tail rotor and will produce the same effect.
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise → left banking. Clockwise → right banking.
That's the reason why on modern helicopters like the EC135 the attitude indicator is even mounted with a bank on the panel.<ref>https://wiki.flightgear.org/Howto:Fly_a_helicopter</ref>
== See also ==
* [[wikipedia:Helicopter flight controls]] (Wikipedia)
== References ==
{{Reflist}}
{{BookCat}}
510mrsjybvbta74oxt8w5qzu40qc6uf
4640488
4640487
2026-06-17T04:33:58Z
Fcbs3
3546790
/* See also */
4640488
wikitext
text/x-wiki
== Preface ==
In principle everything that applies to real helicopters, applies also to helicopters in FlightGear. It is important to be familiar with fundamental helicopter manoeuvres. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence. In FlightGear it is not possible to damage a helicopter in flight.
=== Control hardware ===
==== Stick and Pitch control ====
On the hardware side a use of a good joystick is recommended: A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a force feedback joystick with a disconnected voltage supply. Further, the joystick should have a "thrust controller" (throttle).
==== Tail rotor controls ====
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by adding the flag <code>--enable-auto-coordination</code> in either the FlightGear Qt launcher or the command line.
==== Joystick ====
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections.
==== Mouse ====
A mouse can be also used. Joystick and mouse both have advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in <code>mice.xml</code> to your need. By decreasing the factor you can increase the control travel way and have less sensitive controls, which might improve the handling.
==== Keyboard ====
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!
== Getting started ==
=== Launch ===
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.
In my opinion the Bo105 is the easiest to fly, since it reacts substantially more directly than other helicopters.
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.
The Robinson R44 is also very easy to fly, although possibly unrealistically so.
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.
=== Controls ===
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called cyclic blade control. Next there is the collective blade control, which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the tail rotor is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw the helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.
=== Behavior of helicopters ===
Helicopters are naturally unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball.
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick... And so on, and so on.
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!
== Lift-Off ==
First reduce the collective to minimum. To increase the rotor thrust, you have to "pull" the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, "full power" has the thrust controller at idle. Start the engine by pressing <code>}</code>. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately centered. Wait until the rotor has finished accelerating. For the Bo105 there is an instrument for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.
Quick Reference:
# Press <code>}</code> to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.
# Disengage parking or rotor brake (if applicable).
# Wait for your turbine to come to full speed.
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.
# When at desired altitude, push throttle to about 60%.
# Fly freely.
Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.
== In the air ==
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The "neutral" position of the stick will depend upon airspeed and collective.
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, "translation lift" is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!
You may wonder about the heli banking to the side. Don't worry, that's normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away - so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have, for example while hovering. In cruise the fins will take over more and more of the work of the tail rotor and will produce the same effect.
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise → left banking. Clockwise → right banking.
That's the reason why on modern helicopters like the EC135 the attitude indicator is even mounted with a bank on the panel.<ref>https://wiki.flightgear.org/Howto:Fly_a_helicopter</ref>
== See also ==
* [[wikipedia:Helicopter flight controls|Helicopter flight controls]] (Wikipedia)
== References ==
{{Reflist}}
{{BookCat}}
sssh2bdvlljltl7n87qoddinxcczgt2
Vehicle Identification Numbers (VIN codes)/Volkswagen/VIN Codes
0
483652
4640457
4640422
2026-06-16T20:09:52Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640457
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 90hp. VW Scirocco 8V ('83-'88), Cabriolet ('85-'89)
|-
| A || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('86)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('87-'93)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. VW Golf ('87-'88), Golf w/Fed. emissions ('89), Jetta ('87-'88), Jetta w/Fed. emissions ('89)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos (Early '11)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15), Beetle TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.1L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('83-'84)
|-
| B || 2.2L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('85-'88)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. Higher Output.<br> VW Golf GT ('87-'88), GTI 8V ('87), Golf w/CA emissions ('89), Jetta GLI 8V ('87), Jetta ('88), Jetta w/CA emissions ('89)
|-
| B || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('87-'88 & '89 in Canada)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 94hp. VW Cabriolet ('90-'93)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('90-'93)
|-
| B || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine. VW Eurovan ('01-'03),<br> Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Golf GTI 16V ('87-'89), Jetta GLI 16V ('87-'89)
|-
| C || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| C || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 94hp. VW Cabriolet ('91-'93)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93),<br> GTI VR6 (Gen 3) [1H] ('95-'99), Jetta GLX VR6 (Gen 3) [1H] ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW New Beetle ('99-'05), GTI ('00-'01), Jetta sedan ('00-'01)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| D || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - ULEV. TSI. Timing chain. VW Eos ('11-'15)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) [1H] ('95),<br> Jetta GLX VR6 (Gen 3) [1H] ('95), GTI VR6 (Gen 4) [1J] ('99-'00), Jetta VR6 (Gen 4) [9M] ('99-'00)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 180 hp.<br> VW New Beetle Turbo S ('02-'04), GTI 1.8T (Mk4) [1J] ('02-Mid '06), Jetta sedan 1.8T ('02-'04),<br> Jetta sedan GLI 1.8T (Mk4) [9M] (Mid '04-Mid '05), Jetta wagon 1.8T (Mk4) [1J] ('02-'05)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas Cross Sport ('20-'23)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado SLC ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine.<br> VW Golf TDI ('99-'00), Jetta TDI ('97-'00), New Beetle TDI ('98-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10-'17)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW GTI VR6 ('01-Mid '02), Jetta sedan VR6 ('01-Mid '02), Jetta wagon VR6 ('01-'02)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| G || 3.0L || 90° V6 supercharged [[w:Intercooler|IC]] || Gas-Electric Hybrid || DOHC,<br /> 24 valve || Direct injection. Audi EA837 engine + electric motor. Nickel-metal hydride Battery Pack.<br> VW Touareg Hybrid ('11-'15)
|-
| H || 1.6L || I4 Turbo || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Quantum ('82-'85)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 2.8L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW GTI VR6 (Mid '02-'05), Jetta sedan GLX VR6 (Mid '02-'03), Jetta sedan GLI VR6 (Mid '02-'04)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW Golf ('02-'03), Jetta sedan Mk4 [9M] ('01-'05), Jetta wagon ('01-'03), New Beetle ('01-'05),<br> Jetta City (Canada only: '07-'09)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg TDI ('10-'12)
|-
| L || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93, '96-'97, '04-'06), Jetta ('93, '96-'97), Jetta wagon ('04-'05),<br> Golf City (Canada only: '07-'10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta sedan TDI Cup Edition ('10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14), Beetle TDI ('13-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| N || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA189 engine.<br> VW Passat TDI ('12-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Golf TDI ('01-'03), Jetta sedan TDI ('01-'03), Jetta wagon TDI ('02-'03),<br> New Beetle TDI ('01-'03)
|-
| P || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 240 hp. VW Touareg TDI ('13-'16)
|-
| R || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93), Jetta ('93)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Golf Mk4 [1J] TDI ('04-'06), Jetta sedan Mk4 [9M] TDI ('04-'05),<br> Jetta wagon Mk4 [1J] TDI ('04-'05 & '06 in Canada), New Beetle TDI ('04-'06)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| R || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas ('18-'23)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-'16)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Tiguan ('09-'17), Tiguan Limited ('17-'18)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Passat TDI ('15)
|-
| W || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos ('11-'16)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
iud5bvz3tunyr2cnfbzcn6gz2ejuhc1
4640478
4640457
2026-06-16T22:29:23Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640478
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 90hp. VW Scirocco 8V ('83-'88), Cabriolet ('85-'89)
|-
| A || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('86)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('87-'93)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. VW Golf ('87-'88), Golf w/Fed. emissions ('89), Jetta ('87-'88), Jetta w/Fed. emissions ('89)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos (Early '11)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15), Beetle TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.1L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('83-'84)
|-
| B || 2.2L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('85-'88)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. Higher Output.<br> VW Golf GT ('87-'88), GTI 8V ('87), Golf w/CA emissions ('89), Jetta GLI 8V ('87), Jetta ('88), Jetta w/CA emissions ('89)
|-
| B || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('87-'88 & '89 in Canada)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 94hp. VW Cabriolet ('90-'93)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('90-'93)
|-
| B || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine. VW Eurovan ('01-'03),<br> Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Golf GTI 16V ('87-'89), Jetta GLI 16V ('87-'89)
|-
| C || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| C || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 94hp. VW Cabriolet ('91-'93)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Passat ('95-'96)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93),<br> GTI VR6 (Gen 3) [1H] ('95-'99), Jetta GLX VR6 (Gen 3) [1H] ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW New Beetle ('99-'05), GTI ('00-'01), Jetta sedan ('00-'01)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| D || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - ULEV. TSI. Timing chain. VW Eos ('11-'15)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) [1H] ('95),<br> Jetta GLX VR6 (Gen 3) [1H] ('95), GTI VR6 (Gen 4) [1J] ('99-'00), Jetta VR6 (Gen 4) [9M] ('99-'00)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 180 hp.<br> VW New Beetle Turbo S ('02-'04), GTI 1.8T (Mk4) [1J] ('02-Mid '06), Jetta sedan 1.8T ('02-'04),<br> Jetta sedan GLI 1.8T (Mk4) [9M] (Mid '04-Mid '05), Jetta wagon 1.8T (Mk4) [1J] ('02-'05)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas Cross Sport ('20-'23)
|-
| F || 1.6L || I4 Turbo || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Jetta EcoDiesel ('91-'92)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado SLC ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine.<br> VW Golf TDI ('99-'00), Jetta TDI ('97-'00), New Beetle TDI ('98-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10-'17)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Golf ('85-'87), Jetta ('85-'86, '89-'91)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW GTI VR6 ('01-Mid '02), Jetta sedan VR6 ('01-Mid '02), Jetta wagon VR6 ('01-'02)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| G || 3.0L || 90° V6 supercharged [[w:Intercooler|IC]] || Gas-Electric Hybrid || DOHC,<br /> 24 valve || Direct injection. Audi EA837 engine + electric motor. Nickel-metal hydride Battery Pack.<br> VW Touareg Hybrid ('11-'15)
|-
| H || 1.6L || I4 Turbo || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Quantum Turbodiesel ('82-'85), Jetta Turbodiesel ('85-'86)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 2.8L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW GTI VR6 (Mid '02-'05), Jetta sedan GLX VR6 (Mid '02-'03), Jetta sedan GLI VR6 (Mid '02-'04)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW Golf ('02-'03), Jetta sedan Mk4 [9M] ('01-'05), Jetta wagon ('01-'03), New Beetle ('01-'05),<br> Jetta City (Canada only: '07-'09)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg TDI ('10-'12)
|-
| L || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93, '96-'97, '04-'06), Jetta ('93, '96-'97), Jetta wagon ('04-'05),<br> Golf City (Canada only: '07-'10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta sedan TDI Cup Edition ('10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14), Beetle TDI ('13-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| N || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA189 engine.<br> VW Passat TDI ('12-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Golf TDI ('01-'03), Jetta sedan TDI ('01-'03), Jetta wagon TDI ('02-'03),<br> New Beetle TDI ('01-'03)
|-
| P || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 240 hp. VW Touareg TDI ('13-'16)
|-
| R || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93), Jetta ('93)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Golf Mk4 [1J] TDI ('04-'06), Jetta sedan Mk4 [9M] TDI ('04-'05),<br> Jetta wagon Mk4 [1J] TDI ('04-'05 & '06 in Canada), New Beetle TDI ('04-'06)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| R || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas ('18-'23)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-'16)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Tiguan ('09-'17), Tiguan Limited ('17-'18)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Passat TDI ('15)
|-
| W || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos ('11-'16)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
glucikn8piftm0g1yo491tfwvwgiad2
4640482
4640478
2026-06-17T02:46:31Z
JustTheFacts33
3434282
/* Position 5, Engine Type: */
4640482
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
===Positions 1–3, World Manufacturer Identifier:===
* WVW - VW passenger car
* WVG - VW SUV & ID Buzz
* WV1 - VW Comm. Vehicles - cargo van, pickup truck (truck) (Canadian mkt. '92 Transporter Double-Cab Pickup)
* WV2 - VW Comm. Vehicles - passenger van, camper van, or minibus (M.P.V.) (Canadian mkt. '92 Transporter Window Van, '95 Transporter)
* WV3 - VW Comm. Vehicles - chassis cab or cutaway (incomplete vehicle) [Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)]
* WV4 - VW Comm. Vehicles made by Ford (T7 Transporter, 2nd gen. Amarok) - cargo van, pickup truck (truck)
* WV5 - VW Comm. Vehicles made by Ford (T7 Caravelle) - passenger van, camper van, or minibus (M.P.V.)
* 1VW - VW passenger car made in USA
* 1V1 - VW truck made in USA
* 1V2 - VW SUV made in USA
* 1WV - Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)]
* 2V8 - VW M.P.V. (Routan) 2009 with side airbags made by Chrysler Canada
* 2V4 - VW M.P.V. (Routan) 2010-2011 made by Chrysler Canada
* 2C4 - Chrysler Group Canada (all brands produced) M.P.V. - used for 2012-2014 Routan
* 3VW - VW passenger car made in Mexico
* 3VV - VW SUV made in Mexico
* 8AW - VW passenger car made in Argentina
* 9BW - VW passenger car made in Brazil
M.P.V.=Multipurpose Passenger Vehicle
===Position 5, Engine Type: ===
{| class="wikitable"
|+Position 5
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 2.0L || Flat-4 || Gas || OHV || Air-cooled. Bosch L-Jetronic MPI. VW Type 4 air-cooled flat-4 engine. VW Vanagon ('81-Mid '83)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 90hp. VW Scirocco 8V ('83-'88), Cabriolet ('85-'89)
|-
| A || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('86)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('87-'93)
|-
| A || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. VW Golf ('87-'88), Golf w/Fed. emissions ('89), Jetta ('87-'88), Jetta w/Fed. emissions ('89)
|-
| A || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW Golf Mk3 [1H] ('94-'99), Golf Mk4 [1J] ('99-'00), Jetta Mk3 [1H] ('94-'99),<br> Jetta Mk4 [9M] ('99-'00, '03-'05), Cabrio ('96-'98), New Beetle ('99-'00)
|-
| A || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat ('98-'00)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Eos ('07-'08)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Eos ('09-'10)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos (Early '11)
|-
| A || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Golf TDI ('15), Golf SportWagen TDI ('15), Jetta sedan Mk6 TDI ('15), Beetle TDI ('15)
|-
| B || 1.9L || Flat-4 || Gas || OHV || Water-cooled. Digijet (Digital-Jetronic) MPI. VW Wasserboxer engine. VW Vanagon (Mid '83-'85)
|-
| B || 2.1L || Flat-4 || Gas || OHV || Water-cooled. VW-Bosch Digifant-controlled MPI. VW Wasserboxer engine. VW Vanagon ('86-'91)
|-
| B || 2.1L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('83-'84)
|-
| B || 2.2L || I5 || Gas || SOHC,<br /> 10 valve || MPI. Audi EA828 I5 engine. <br> VW Quantum ('85-'88)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. Higher Output.<br> VW Golf GT ('87-'88), GTI 8V ('87), Golf w/CA emissions ('89), Jetta GLI 8V ('87), Jetta ('88), Jetta w/CA emissions ('89)
|-
| B || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. Transversely mounted. VW Scirocco 16V ('87-'88 & '89 in Canada)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Transversely mounted. 94hp. VW Cabriolet ('90-'93)
|-
| B || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. Longitudinally mounted. VW Fox ('90-'93)
|-
| B || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| B || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('90-'93)
|-
| B || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW Golf Mk3 [1H] ('94-'99), Golf Mk4 [1J] ('02), Jetta Mk3 [1H] ('94-'99), Jetta sedan Mk4 [9M] ('01-'02), Jetta wagon ('01-'02), Cabrio ('95-'96, '98-'99), New Beetle ('98, '01-'02)
|-
| B || 2.8L || 15° VR6 || Gas || SOHC,<br /> 24 valve || MPI. VW VR6 engine. VW Eurovan ('01-'03),<br> Winnebago Rialta ('01-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)
|-
| B || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. <br> VW Eos ('07-'08)
|-
| B || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('07-'08)
|-
| C || 1.8L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('87-'89), Jetta GLI 16V ('87-'89)
|-
| C || 1.8L || I4 supercharged [[w:Intercooler|IC]] || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Corrado G60 ('90-'92)
|-
| C || 1.8L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. 94hp. VW Cabriolet ('91-'93)
|-
| C || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Passat ('91-'93)
|-
| C || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '92-'93), Transporter (Canada: '92)
|-
| C || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf Mk3 [1H] ('94-'95), Golf Mk4 [1J] ('99-'00), Jetta Mk3 [1H] ('94-'95), Jetta Mk4 [9M] ('99-'00), Cabrio ('95, '00-'02), Passat ('95-'96), New Beetle ('99-'00)
|-
| C || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW Passat (B5) ('01 - 1st 1/2)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 220hp.<br> VW Touareg V6 ('04) (when C follows B or Z in the 4th pos. of VIN)
|-
| C || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 (Early prod. '04) (when C follows C in the 4th pos. of VIN)
|-
| C || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 250 hp.<br> VW R32 ('08)
|-
| D || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '93, Canada: '93-'94)
|-
| D || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93),<br> GTI VR6 (Gen 3) [1H] ('95-'99), Jetta GLX VR6 (Gen 3) [1H] ('95-'99)
|-
| D || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('98-'00)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 150 hp. VW New Beetle ('99-'05), GTI ('00-'01), Jetta sedan ('00-'01)
|-
| D || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 170 hp. VW Passat (B5.5) (Mid '01-'05)
|-
| D || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - ULEV. TSI. Timing chain. VW Eos ('11-'15)
|-
| E || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('90-'92), Jetta GLI 16V ('90-'92)
|-
| E || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW Corrado SLC ('92-'93), Passat GLX VR6 ('93, '95-'97), GTI VR6 (Gen 3) [1H] ('95),<br> Jetta GLX VR6 (Gen 3) [1H] ('95), GTI VR6 (Gen 4) [1J] ('99-'00), Jetta VR6 (Gen 4) [9M] ('99-'00)
|-
| E || 2.5L || I5 || Gas || SOHC,<br /> 10 valve || MPI. VW Eurovan (US: '95, Canada: '94-'96), Winnebago Rialta ('95-'96)
|-
| E || 1.8L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 20 valve || MPI. Audi EA827/EA113 engine. 180 hp.<br> VW New Beetle Turbo S ('02-'04), GTI 1.8T (Mk4) [1J] ('02-Mid '06), Jetta sedan 1.8T ('02-'04),<br> Jetta sedan GLI 1.8T (Mk4) [9M] (Mid '04-Mid '05), Jetta wagon 1.8T (Mk4) [1J] ('02-'05)
|-
| E || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA188 engine. VW Passat TDI ('04-'05)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('07-'09)
|-
| E || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas Cross Sport ('20-'23)
|-
| F || 1.6L || I4 Turbo || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Jetta EcoDiesel ('91-'92)
|-
| F || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Passat GLX VR6 ('93-'94), Corrado SLC ('93-'94 & '95 in Canada)
|-
| F || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine.<br> VW Golf TDI ('99-'00), Jetta TDI ('97-'00), New Beetle TDI ('98-'00)
|-
| F || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc. VW Phaeton ('04-'06)
|-
| F || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Touareg ('10-'17)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Golf ('85-'87), Jetta ('85-'86, '89-'91)
|-
| G || 1.6L || I4 || Diesel || SOHC,<br /> 8 valve || Water-cooled. Indirect injection. VW EA827 engine. VW Vanagon ('82-'83)
|-
| G || 2.4L || I5 || Diesel || SOHC,<br /> 10 valve || Indirect injection. VW Eurovan (Canada only: '93-'97), Transporter (Canada only: '95)
|-
| G || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Passat TDI ('96-'97)
|-
| G || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine.<br> VW GTI VR6 ('01-Mid '02), Jetta sedan VR6 ('01-Mid '02), Jetta wagon VR6 ('01-'02)
|-
| G || 3.2L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW EA390 engine. 240 hp.<br> VW R32 ('04), Touareg ('05-'06)
|-
| G || 3.0L || 90° V6 supercharged [[w:Intercooler|IC]] || Gas-Electric Hybrid || DOHC,<br /> 24 valve || Direct injection. Audi EA837 engine + electric motor. Nickel-metal hydride Battery Pack.<br> VW Touareg Hybrid ('11-'15)
|-
| H || 1.6L || I4 Turbo || Diesel || SOHC,<br /> 8 valve || Indirect injection. VW EA827 engine. VW Quantum Turbodiesel ('82-'85), Jetta Turbodiesel ('85-'86)
|-
| H || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Eurovan ('97, '99-'00), Winnebago Rialta ('97-'00)
|-
| H || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('00-'04, '05: Early prod.)
|-
| H || 2.8L || 15° VR6 || Gas || DOHC,<br /> 24 valve || MPI. VW VR6 engine.<br> VW GTI VR6 (Mid '02-'05), Jetta sedan GLX VR6 (Mid '02-'03), Jetta sedan GLI VR6 (Mid '02-'04)
|-
| H || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 414 hp. VW Phaeton ('04-'05)
|-
| H || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when H follows G or H in the 4th pos. of VIN)
|-
| J || 2.0L || I4 || Gas || DOHC,<br /> 16 valve || MPI. VW EA827 engine. VW Golf GTI 16V ('91-'92), Jetta GLI 16V ('90-'92)
|-
| J || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat (Mid '08)
|-
| K || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW Golf ('02-'03), Jetta sedan Mk4 [9M] ('01-'05), Jetta wagon ('01-'03), New Beetle ('01-'05),<br> Jetta City (Canada only: '07-'09)
|-
| K || 4.0L || 72° W8 || Gas || DOHC,<br /> 32 valve || MPI. VW W8 engine. VW Passat W8 ('02-'04)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA113 engine. FSI. Timing belt. VW Passat ('06-Mid '08)
|-
| K || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Passat ('09-'10)
|-
| K || 6.0L || 72° W12 || Gas || DOHC,<br /> 48 valve || MPI. VW W12 engine. 444 hp. VW Phaeton ('06)
|-
| K || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg TDI ('10-'12)
|-
| L || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93, '96-'97, '04-'06), Jetta ('93, '96-'97), Jetta wagon ('04-'05),<br> Golf City (Canada only: '07-'10)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Jetta sedan Mk5 [1K] TDI ('09-'10), Jetta sedan TDI Cup Edition ('10), Jetta Sportwagen ('09-'14), Jetta sedan Mk6 TDI ('11-'14), Beetle TDI ('13-'14)
|-
| L || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW CC ('09-'10)
|-
| M || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine.<br> VW New Beetle ('04-'05)
|-
| M || 4.2L || 90° V8 || Gas || DOHC,<br /> 40 valve || MPI. Audi EA824 engine. 4172cc.<br> VW Touareg V8 ('04-'06)
|-
| M || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 225 hp. VW Touareg ('09)
|-
| M || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. VW EA189 engine.<br> VW Golf TDI ('10-'14)
|-
| N || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA189 engine.<br> VW Passat TDI ('12-'14)
|-
| P || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. 90 hp.<br> VW Golf TDI ('01-'03), Jetta sedan TDI ('01-'03), Jetta wagon TDI ('02-'03),<br> New Beetle TDI ('01-'03)
|-
| P || 3.0L || 90° V6 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 24 valve || Direct injection. Audi EA897 engine. 240 hp. VW Touareg TDI ('13-'16)
|-
| R || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('93), Jetta ('93)
|-
| R || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. Pumpe Düse (Pump Injection). VW EA827 engine. 100 hp.<br> VW Golf Mk4 [1J] TDI ('04-'06), Jetta sedan Mk4 [9M] TDI ('04-'05),<br> Jetta wagon Mk4 [1J] TDI ('04-'05 & '06 in Canada), New Beetle TDI ('04-'06)
|-
| R || 4.2L || 90° V8 || Gas || DOHC,<br /> 32 valve || Direct injection. Audi EA824 engine. 4163cc.<br> VW Touareg V8 ('09)
|-
| R || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Atlas ('18-'23)
|-
| S || 2.8L || 15° VR6 || Gas || SOHC,<br /> 12 valve || MPI. VW VR6 engine. VW Jetta GLX VR6 ('94)
|-
| S || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('01), Jetta sedan Mk4 [9M] ('01), New Beetle ('01)
|-
| T || 2.0L || I4 || Gas || SOHC,<br /> 8 valve || MPI. VW EA827 engine. VW Golf ('01), Jetta sedan Mk4 [9M] ('01), New Beetle ('01)
|-
| T || 1.9L || I4 Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 8 valve || Direct injection. VW EA827 engine. VW Jetta Mk5 [1K] TDI (Mid '05-'06)
|-
| T || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('06-'08)
|-
| U || 2.8L || 90° V6 || Gas || DOHC,<br /> 30 valve || MPI. Audi EA835 engine - Gen 2. Iron Block.<br> VW Passat ('05)
|-
| U || 3.6L || 10.6° VR6 || Gas || DOHC,<br /> 24 valve || Direct injection. VW EA390 engine.<br> VW Passat ('06-'08), VW CC ('09-'16)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine. TSI. Timing chain. VW Tiguan ('09-'17), Tiguan Limited ('17-'18)
|-
| V || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Diesel || DOHC,<br /> 16 valve || Common-Rail Direct injection. SCR. VW EA288 engine.<br> VW Passat TDI ('15)
|-
| W || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve || Direct injection. Audi EA888 engine - SULEV. TSI. Timing chain. VW Eos ('11-'16)
|-
| Z || 4.9L || 90° V10 Twin Turbo [[w:Intercooler|IC]] || Diesel || SOHC,<br /> 20 valve || Direct injection. Pumpe Düse (Pump Injection). VW V10 TDI engine. <br> VW Touareg V10 TDI ('04) (when Z follows P in the 4th pos. of VIN)
|}
SCR=Selective Catalytic Reduction
===Position 6, Restraint Systems:===
*0 = Active (Manual) 3-point Seat Belts only
*1 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts and front knee bolsters
*2 = VW-RA (VW Restraint Automatic): Door-mounted front shoulder belts, Manual front lap belts, and front knee bolsters
*4 = VW-ELRA (VW Electromechanical Restraint Automatic): Motorized front shoulder belts, Manual front lap belts
*5 = Driver-side Airbag, Driver and Passenger Active (Manual) 3-point Seat Belts
*8 = Driver and Passenger Front Airbags
*6 = Active (Manual) belts plus Driver and Passenger Front Airbags & Front Side Airbags & Side Curtain Airbags
*9 = Active (Manual) belts plus Driver and Passenger Front Dual-stage Airbags & Front Side Airbags & Side Curtain Airbags
*3 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags
*0 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Phaeton)
*7 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front Side Airbags & Side Curtain Airbags (Touareg)
*8 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Jetta)
*9 = Active (Manual) belts plus Driver and Passenger Front Advanced Airbags & Front and Rear Side Airbags & Side Curtain Airbags (Except Jetta)
===Position 7-8, Model Line:===
1981-2009:
*30 = Fox ('87-'93)
*15 = Rabbit Convertible ('81-'84), Cabriolet ('85-'93)
*16 = Jetta ('81-'88)
*17 = Rabbit ('81-'84), Rabbit Truck ('81-'83), Golf (US built: '85-'89)
*1G = Golf (Mexican built: '89-'92), Jetta ('89-'92)
*1H = Golf/GTI ('93-'99 - Mark III), Jetta ('93-'99 - Mark III)
*1E = Cabrio ('95-'99)
*1V = Cabrio ('00-'02)
*1J = Golf/GTI ('99-'06 - Mark IV), R32 ('04), City Golf (Canada only: '07-'09), Jetta wagon ('01-'05 & '06 in Canada - Mark IV)
*9M = Jetta sedan ('99-'05 - Mark IV), City Jetta (Canada only: '07-'09)
*1K = Rabbit/GTI ('06-'09 - Mark V), R32 ('08), Jetta sedan ('05-'09 - Mark V), Jetta Sportwagen ('09 - Mark V)
*32 = Dasher hatchback ('81), Quantum hatchback ('82-'83)/sedan ('82-'88)
*33 = Dasher wagon ('81), Quantum wagon ('82-'88)
*31 = Passat ('90-'94)
*3A = Passat ('95-'97)
*3B = Passat ('98-'05)
*3C = Passat ('06-'09), CC ('09)
*3D = Phaeton ('04-'06)
*53 = Scirocco ('81-'88 & '89 in Canada)
*50 = Corrado ('90-'94 & '95 in Canada)
*1C = New Beetle coupe ('98-'09)
*1Y = New Beetle convertible ('03-'09)
*1F = Eos ('07-'09)
*25 - Vanagon ('81-'91)
*70 = Eurovan ('93-'03 & '92 in Canada), Eurovan-based Winnebago Rialta, Winnebago Vista, Itasca Sunstar Class C motorhomes
*5N = Tiguan ('09)
*7L = Touareg ('04-'09)
2010-:
*BE (Type 1J) = City Golf (Canada only: '10)
*AJ (Type 5K) = Golf/GTI ('10-'14 - Mark 6), Golf R ('12-'13)
*AU (Type AU) = Golf/GTI ('15-'21 - Mark 7), Golf R ('15-'19), Golf Sportwagen ('15-'19 - Mark 7), Golf Alltrack ('17-'19), e-Golf ('15-'19 & '20 in Canada)
*CD (Type CD) = Golf GTI/Golf R ('22-24 - Mark 8)
*CD (Type DA) = Golf GTI/Golf R ('25-present - Mark 8.5)
*AJ (Type 1K) = Jetta sedan ('10 - Mark V), Jetta Sportwagen ('10-'14 - Mark V)
*AJ (Type 16) = Jetta sedan ('11-'18 - Mark VI)
*BU = Jetta sedan ('19-present - Mark VII)
*AN (Type 3C) = Passat ('10)
*A3 (NMS) = Passat ('12-'22)
*AN (Type 3C) = CC ('10-'17)
*AN (Type 3H) = Arteon ('19-'23)
*AG (Type 1C) = New Beetle coupe ('10)
*AL (Type 1Y) = New Beetle convertible ('10)
*AT (Type 5C) = Beetle ('12-'19)
*AH (Type 1F) = Eos ('10-'16)
*EB = ID Buzz ('25)
*B2 (Type CL) = Taos ('22-)
*AX (Type 5N) = Tiguan ('10-'17), Tiguan Limited ('17-'18)
*AX (Type BW) = Tiguan ('18-'24)
*RM = Tiguan ('25-)
*A9 (Type 7L) = Touareg ('10)
*BP (Type 7P) = Touareg ('11-'17)
*CA = Atlas ('18-'26), Atlas Cross Sport ('20-'26)
*E2 = ID.4 (German built: '21-'22)
*E8 = ID.4 (US built: '23-'26)
===Position 9, Check Digit===
[[Vehicle Identification Numbers (VIN codes)/Check digit |Check digit]]
===Position 10, Model Year: ===
[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]]
===Position 11, Production Plant:===
* B: Brussels, Belgium
* C: Chattanooga, TN, USA
* D: Bratislava, Slovakia
* E: Emden, Germany
* G: Graz, Austria (Steyr-Daimler-Puch plant: Vanagon Syncro 4wd [US: '86-'87, '89-'91, Canada: '86-'91])
* H: Hanover, Germany
* K: Osnabrueck, Germany (Karmann plant: Scirocco ['81-'88 & '89 in Canada], Corrado ['90-'94 & '95 in Canada], Rabbit Convertible ['81-'84], Cabriolet ['85-'93], Cabrio ['95-'96])
* K: Osnabrueck, Germany (ex-Karmann VW Osnabrueck GmbH plant: Tiguan ['17], Tiguan Limited ['17-'18])
* M: Puebla, Mexico
* P: Zwickau, Germany [For WMI: WVW or WVG]
* P: Sao Bernardo do Campo, Sao Paulo state, Brazil (Anchieta plant) [For WMI: 9BW]
* R: Windsor Assembly - Windsor, ON, Canada (Chrysler plant)
* V: Westmoreland Assembly - East Huntingdon, Westmoreland County, PA, USA [For WMI: 1VW or 1V1]
* V: Portugal [For WMI: WVW]
* W: Wolfsburg, Germany
* 4: Sao Jose dos Pinhais, Parana state, Brazil (Curitiba plant)
* 8: Dresden, Germany
'''Positions 12–17, Serial Number'''
'''Select VW equipment codes:'''
*X9A - Equipment Options for USA market
*X9B - Equipment Options for Canadian market
{{BookCat}}
0muaagtc8kqe5qmnzwft25lf846wj28
User:Phina001/Editan Soup
2
483706
4640474
4638736
2026-06-16T21:27:38Z
Kittycataclysm
3371989
Kittycataclysm moved page [[Cookbook:Editan Soup]] to [[User:Phina001/Editan Soup]] without leaving a redirect: user space for bulk-added incomplete recipe
4638736
wikitext
text/x-wiki
{{Incomplete recipe|reason=missing appropriate linking, missing quantities, missing templates, missing/incorrect categories}}
{{recipe}}
'''Editan Soup''' is a traditional vegetable soup of the Efik people and Ibibio people of Cross River State and Akwa Ibom State in Southern Nigeria. It is prepared using [[Cookbook:Editan|Editan]] leaves, a leafy vegetable known for its natural bitterness, which is carefully processed before cooking to reduce its taste.
The soup has a slightly bitter flavour. It is commonly eaten with swallows such as fufu, eba, or pounded yam.
== Ingredients ==
=== Main ingredients ===
* Fresh Editan leaves
* [[Cookbook:Waterleaf|Waterleaf]] (optional)
* Palm oil
* Assorted [[Cookbook:meat|meat]] (beef, goat meat, shaki, kpomo)
* Dried fish
* [[Cookbook:Stockfish|Stockfish]]
* Periwinkles (optional)
=== Seasoning ingredients ===
* Ground [[Cookbook:crayfish|crayfish]]
* Fresh or dried [[Cookbook:Pepper|pepper]]
* Seasoning cubes
* Salt (to taste)
* [[Cookbook:Onion|Onion]] (optional)
==Equipment==
* Cooking pot
* Stove or cooking burner
* Knife
* Cutting board
* Wooden spoon or cooking spatula
* Mortar and pestle (optional)
* Blender or grinding machine (optional)
* Bowl for washing ingredients
* Sieve
== Procedure ==
The most important step is reducing the bitterness of the leaves.
* Wash and slice the [[Cookbook:Editan|Editan]] leaves finely.
* Rub with salt or soak in warm water.
* Squeeze and rinse repeatedly until bitterness reduces.
* Drain properly before cooking.
* Season meat with salt, pepper, and seasoning cubes.
* Boil until it is properly cooked.
* Add stockfish and dried fish and cook until it softened.
* Add palm oil to the cooked meat stock.
* Stir and allow it to blend properly.
* Add crayfish, pepper, and seasoning cubes.
* Add [[Cookbook:Waterleaf|waterleaf]] (if used) and cook briefly.
* Add the prepared Editan leaves.
* Stir and allow to simmer for 10–15 minutes.
* Taste and adjust salt or seasoning.
* Allow the soup to cook until well combined.
== Serving ==
Editan Soup is traditionally served hot with:
* [[Cookbook:Swallow|Fufu]]
* [[Cookbook:Eba (Cassava Flake Swallow)|Eba]]
* [[Cookbook:Pounded Yam|Pounded yam]]
* [[Cookbook:Semo (Nigerian Cooked Semolina)|Semovita]]
[[Category:Efik recipes ]]
[[Category:African recipes]]
[[Category:Nigerian recipes]]
[[Category:recipes]]
[[Category:Easy recipes]]
30vbnb0m1ogul4mnruo4z253bal9lxv
4640475
4640474
2026-06-16T21:27:55Z
Kittycataclysm
3371989
rm incomplete category flag since in userspace
4640475
wikitext
text/x-wiki
{{Incomplete recipe|reason=missing appropriate linking, missing quantities, missing templates, missing/incorrect categories|includecat=no}}
{{recipe}}
'''Editan Soup''' is a traditional vegetable soup of the Efik people and Ibibio people of Cross River State and Akwa Ibom State in Southern Nigeria. It is prepared using [[Cookbook:Editan|Editan]] leaves, a leafy vegetable known for its natural bitterness, which is carefully processed before cooking to reduce its taste.
The soup has a slightly bitter flavour. It is commonly eaten with swallows such as fufu, eba, or pounded yam.
== Ingredients ==
=== Main ingredients ===
* Fresh Editan leaves
* [[Cookbook:Waterleaf|Waterleaf]] (optional)
* Palm oil
* Assorted [[Cookbook:meat|meat]] (beef, goat meat, shaki, kpomo)
* Dried fish
* [[Cookbook:Stockfish|Stockfish]]
* Periwinkles (optional)
=== Seasoning ingredients ===
* Ground [[Cookbook:crayfish|crayfish]]
* Fresh or dried [[Cookbook:Pepper|pepper]]
* Seasoning cubes
* Salt (to taste)
* [[Cookbook:Onion|Onion]] (optional)
==Equipment==
* Cooking pot
* Stove or cooking burner
* Knife
* Cutting board
* Wooden spoon or cooking spatula
* Mortar and pestle (optional)
* Blender or grinding machine (optional)
* Bowl for washing ingredients
* Sieve
== Procedure ==
The most important step is reducing the bitterness of the leaves.
* Wash and slice the [[Cookbook:Editan|Editan]] leaves finely.
* Rub with salt or soak in warm water.
* Squeeze and rinse repeatedly until bitterness reduces.
* Drain properly before cooking.
* Season meat with salt, pepper, and seasoning cubes.
* Boil until it is properly cooked.
* Add stockfish and dried fish and cook until it softened.
* Add palm oil to the cooked meat stock.
* Stir and allow it to blend properly.
* Add crayfish, pepper, and seasoning cubes.
* Add [[Cookbook:Waterleaf|waterleaf]] (if used) and cook briefly.
* Add the prepared Editan leaves.
* Stir and allow to simmer for 10–15 minutes.
* Taste and adjust salt or seasoning.
* Allow the soup to cook until well combined.
== Serving ==
Editan Soup is traditionally served hot with:
* [[Cookbook:Swallow|Fufu]]
* [[Cookbook:Eba (Cassava Flake Swallow)|Eba]]
* [[Cookbook:Pounded Yam|Pounded yam]]
* [[Cookbook:Semo (Nigerian Cooked Semolina)|Semovita]]
[[Category:Efik recipes ]]
[[Category:African recipes]]
[[Category:Nigerian recipes]]
[[Category:recipes]]
[[Category:Easy recipes]]
qjoapmpc9njka6vqat0paekx3s4wjfl
Cookbook:Asaro
102
483816
4640465
4640267
2026-06-16T20:59:45Z
Kittycataclysm
3371989
all previous issues still exist here
4640465
wikitext
text/x-wiki
{{Incomplete recipe|reason=headers don't match recipe template, missing/incorrect categories, procedure not formatted correctly}}
{{recipe}}
{{Recipe summary
| Cuisine = Nigerian cuisine
| Origin = Nigerian origin
| Yield = 4 plates
| Servings = 3-4 servings
| Time = 1 hour
| Difficulty = 3
| Image = [[File:Asaro ( Yam Porridge).jpg|300px]]
| Note = * Do not over-stir during cooking, as this may cause all the yam pieces to break apart.
* The dish should be thick and creamy but still contain visible yam chunks.
* Fresh stock can be used to enhance flavor.
}}
== Introduction ==
'''Asaro''', also known as Yam Porridge is a traditional Nigerian dish made by cooking yam in a richly seasoned sauce of tomatoes, peppers, onions, and oil. It is particularly popular among the Yoruba people of southwestern Nigeria but is enjoyed throughout the country.<ref>{{Cite web |date=2022-01-25 |title=Asaro: How to prepare the Yoruba thick and spicy yam porridge |url=https://www.pulse.ng/story/asaro-how-to-prepare-the-yoruba-thick-and-spicy-yam-porridge-2024073123565836660 |access-date=2026-06-06 |website=Pulse Nigeria |language=en}}</ref><ref>{{Cite web |last=Ajoke |date=2020-03-26 |title=Yam porridge (Asaro) |url=https://www.myactivekitchen.com/asaro-elepo-rederede-yam-porridge/ |access-date=2026-06-06 |website=My Active Kitchen |language=en-GB}}</ref><ref>{{Cite web |last=Osinkolu |first=Lola |date=2022-06-17 |title=Yam pottage/Yam Porridge (Asaro recipe) |url=https://cheflolaskitchen.com/yam-porridge-pottage/ |access-date=2026-06-06 |website=Chef Lola's Kitchen |language=en-US}}</ref>
The dish is known for its soft texture and rich flavor. During cooking, part of the yam breaks down into the sauce, creating a thick and hearty porridge. Asaro may be prepared with fish, meat, vegetables, or seafood.<ref>{{Cite web |last=Nigeria |first=Guardian |date=2017-09-15 |title=How To Make Asaro (Yam Porridge) |url=https://guardian.ng/life/food/how-to-make-asaro-yam-porridge/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |last=Nigeria |first=Guardian |date=2022-12-19 |title=Easy Homemade Asaro Recipe |url=https://guardian.ng/life/easy-homemade-asaro-recipe/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |title=How to Make Delicious Nigerian Yam Porridge (Asaro) |url=https://kashgain.net/blog/how-to-make-yam-porridge-in-nigeria/ |access-date=2026-06-06 |website=kashgain.net |language=en}}</ref>
== Ingredients ==
* 1 medium [[Cookbook:Yam|yam]] (about 1 kg), peeled and cubed
* 3 medium tomatoes
* 2 red bell [[Cookbook:Pepper|pepper]]<nowiki/>s
* 2 scotch bonnet peppers
* 1 medium onion
* 1/2 cup [[Cookbook:Palm Oil|palm oil]] or [[Cookbook:Vegetable Oil|vegetable oil]]
* 200 g [[Cookbook:Fish|fish]], [[Cookbook:Meat|meat]], or smoked fish (optional)
* 2–3 seasoning cubes
* Salt to taste
* 4 cups water or stock
* Leafy vegetables such as [[Cookbook:Spinach|spinach]] or [[Using Ubuntu Linux/Ubuntu Variations|ugu]] (optional)
== Equipment ==
* Cooking pot
* [[Cookbook:Knife|Knife]]
* [[Cookbook:Chopping board|Chopping board]]
* [[Cookbook:Blender|Blender]] or [[Cookbook:Food Processor|food processor]]
* Mixing bowls
* Measuring cups and spoons
* Wooden spoon
* [[Cookbook:Colander|Colander]] or [[Cookbook:Sieve|sieve]]
* Stove or other heat source
== Preparation ==
1. Peel the yam and cut it into medium-sized cubes.
2. Wash the tomatoes, peppers, and onion.
3. Blend the tomatoes, peppers, and onion into a smooth mixture.
4. Prepare the fish, meat, or other protein if using.
5. Heat the oil in a pot and add the blended pepper mixture.
6. Cook for about 10 minutes, stirring occasionally.
7. Add seasoning cubes, salt, and any protein being used.
8. Pour in the water or stock and bring to a boil.
9. Add the yam cubes and stir gently.
10. Cover and cook until the yam becomes soft.
11. Stir occasionally; some of the yam will break down and thicken the porridge.
12. Add vegetables if desired and cook for an additional 3–5 minutes.
13. Adjust seasoning and remove from heat.
== Notes ==
Asaro is served hot and may be enjoyed on its own or with:
* Smoked fish
* Fresh fish
* Beef
* Chicken
* Vegetables
== Variations ==
* Palm oil may be substituted with vegetable oil.
* Seafood such as shrimp or prawns can be added.
* Some versions include leafy vegetables for additional nutrition.
* Extra pepper may be added for a spicier dish.
== References ==
{{reflist}}
[[Category:Nigerian recipes]]
[[Category:African recipes]]
[[Category:Recipes]]
[[Category:Yoruba recipes]]
[[Category:Medium Difficulty recipes]]
[[Category:Recipes with images]]
31jm6ltyd3ar2n390ddvu1q038sj04a
4640471
4640465
2026-06-16T21:17:57Z
Kittycataclysm
3371989
assorted corrections; recipe is now complete
4640471
wikitext
text/x-wiki
__notoc__{{recipe}}
{{Recipe summary
| Cuisine = Nigerian
| Origin = Nigeria
| Yield =
| Servings = 3–4
| Time = 1 hour
| Difficulty = 3
| Image = [[File:Asaro ( Yam Porridge).jpg|300px]]
| Note =
}}
'''Asaro''', also known as yam porridge is a traditional Nigerian dish made by cooking yam in a richly seasoned sauce of tomatoes, peppers, onions, and oil. It is particularly popular among the Yoruba people of southwestern Nigeria but is enjoyed throughout the country.<ref>{{Cite web |date=2022-01-25 |title=Asaro: How to prepare the Yoruba thick and spicy yam porridge |url=https://www.pulse.ng/story/asaro-how-to-prepare-the-yoruba-thick-and-spicy-yam-porridge-2024073123565836660 |access-date=2026-06-06 |website=Pulse Nigeria |language=en}}</ref><ref>{{Cite web |last=Ajoke |date=2020-03-26 |title=Yam porridge (Asaro) |url=https://www.myactivekitchen.com/asaro-elepo-rederede-yam-porridge/ |access-date=2026-06-06 |website=My Active Kitchen |language=en-GB}}</ref><ref>{{Cite web |last=Osinkolu |first=Lola |date=2022-06-17 |title=Yam pottage/Yam Porridge (Asaro recipe) |url=https://cheflolaskitchen.com/yam-porridge-pottage/ |access-date=2026-06-06 |website=Chef Lola's Kitchen |language=en-US}}</ref>
The dish is known for its soft texture and rich flavor. During cooking, part of the yam breaks down into the sauce, creating a thick and hearty porridge. Asaro may be prepared with fish, meat, vegetables, or seafood,<ref>{{Cite web |last=Nigeria |first=Guardian |date=2017-09-15 |title=How To Make Asaro (Yam Porridge) |url=https://guardian.ng/life/food/how-to-make-asaro-yam-porridge/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |last=Nigeria |first=Guardian |date=2022-12-19 |title=Easy Homemade Asaro Recipe |url=https://guardian.ng/life/easy-homemade-asaro-recipe/ |access-date=2026-06-06 |website=The Guardian Nigeria News - Nigeria and World News |language=en-GB}}</ref><ref>{{Cite web |title=How to Make Delicious Nigerian Yam Porridge (Asaro) |url=https://kashgain.net/blog/how-to-make-yam-porridge-in-nigeria/ |access-date=2026-06-06 |website=kashgain.net |language=en}}</ref> and it is served hot.
== Ingredients ==
* 3 medium [[Cookbook:Tomato|tomatoes]]
* 2 red [[Cookbook:Bell Pepper|bell pepper]]<nowiki/>[[Cookbook:Bell Pepper|s]]
* 2 scotch bonnet [[Cookbook:Chiles|chile peppers]]
* 1 medium [[Cookbook:Onion|onion]]
* ½ [[Cookbook:Cup|cup]] [[Cookbook:Palm Oil|palm oil]] or [[Cookbook:Vegetable Oil|vegetable oil]]
* 2–3 [[Cookbook:Dehydrated Broth|seasoning cubes]]
* [[Cookbook:Salt|Salt]] to taste
* 200 g protein, such as fresh [[Cookbook:Fish|fish]], [[Cookbook:Meat|meat]], or [[Cookbook:Dryfish|smoked fish]] (optional)
* 4 cups water or [[Cookbook:Broth and Stock|stock]]
* 1 medium (about 1 [[Cookbook:Kilogram|kg]]) [[Cookbook:Yam|yam]], peeled and [[Cookbook:Cube|cubed]]
* Leafy vegetables such as [[Cookbook:Spinach|spinach]] or [[Cookbook:Fluted Pumpkin|ugu]] (optional)
== Equipment ==
* [[Cookbook:Cookware|Cooking pot]]
* [[Cookbook:Knife|Knife]]
* [[Cookbook:Chopping board|Chopping board]]
* [[Cookbook:Blender|Blender]] or [[Cookbook:Food Processor|food processor]]
* [[Cookbook:Mixing Bowl|Mixing bowls]]
* Measuring [[Cookbook:Measuring Cup|cups]] and [[Cookbook:Measuring Spoons|spoons]]
* Wooden spoon
* [[Cookbook:Colander|Colander]] or [[Cookbook:Sieve|sieve]]
* [[Cookbook:Cooktop|Stove]] or other heat source
== Procedure ==
# Blend the tomatoes, peppers, and onion into a smooth [[Cookbook:Puréeing|purée]].
# Heat the oil in a pot and add the purée. Cook for about 10 minutes, stirring occasionally.
# Stir in seasoning cubes, salt, and any protein being used.
# Stir in the water and bring to a [[Cookbook:Boiling|boil]].
# Gently stir in the cubed yam. Cover and [[Cookbook:Simmering|simmer]], stirring occasionally, until the yam becomes soft and some of it has broken down to thicken the dish.
# Add leafy vegetables if desired and cook for an additional 3–5 minutes.
# Adjust seasoning and remove from heat.
== Notes, tips, and variations ==
* Do not over-stir during cooking, as this may cause all the yam pieces to break apart. The dish should be thick and creamy but still contain visible yam chunks.
* Fresh stock can be used to enhance flavor.
* The amount of chile pepper can be adjusted according to personal taste.
== References ==
{{reflist}}
[[Category:Yoruba recipes]]
[[Category:Recipes with images]]
[[Category:Recipes using tomato]]
[[Category:Recipes using chile]]
[[Category:Recipes using onion]]
[[Category:Recipes using broth and stock]]
[[Category:Recipes using salt]]
[[Category:Recipes using red bell pepper]]
[[Category:Recipes using yam]]
[[Category:Recipes using palm oil]]
[[Category:Recipes using vegetable oil]]
[[Category:Recipes using spinach]]
[[Category:Recipes using fluted pumpkin]]
ipv4lzxrdb09tpwmk1hg5vqpwccmfas
Template talk:41.0
11
483938
4640440
4640379
2026-06-16T12:28:19Z
MathXplore
3097823
Marking for speedy deletion: Test page
4640440
wikitext
text/x-wiki
<noinclude>{{Delete|example=false|Test page}}</noinclude>
background:#a9eb6f
r7a2nvwlienw2tod8gkz6cqsdfb7ues
Chess Opening Theory/1. d4/1...c5/2. d5/2...e5/3. e4
0
483939
4640479
4640393
2026-06-17T01:00:11Z
JackBot
396820
Formatting, [[Special:UncategorizedPages]]
4640479
wikitext
text/x-wiki
I donot want to write .
{{BookCat}}
sm61d60xsyyc5svur8t9natujko447t
User talk:~2026-35276-36
3
483944
4640439
2026-06-16T12:27:53Z
MathXplore
3097823
Notifying author of speedy deletion nomination
4640439
wikitext
text/x-wiki
== I have added a tag to a page you created ==
Hi! I'm MathXplore, and I recently reviewed your page, [[:Modern History of China/Fall of the Ming Dynasty]]. 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. The reason I provided was: <blockquote><strong>Test page</strong></blockquote> If you believe that your page should not be deleted, please post a message on [[Talk:Modern History of China/Fall of the Ming Dynasty|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:27, 16 June 2026 (UTC)
4eijvj9avhz08qiwgb32vgn3qqsjl7a
User talk:~2026-35116-97
3
483945
4640441
2026-06-16T12:28:20Z
MathXplore
3097823
Notifying author of speedy deletion nomination
4640441
wikitext
text/x-wiki
== I have added a tag to a page you created ==
Hi! I'm MathXplore, and I recently reviewed your page, [[:Template talk:41.0]]. 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. The reason I provided was: <blockquote><strong>Test page</strong></blockquote> If you believe that your page should not be deleted, please post a message on [[Template talk:41.0|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:28, 16 June 2026 (UTC)
oh3g4fxymkaqyqnsfhr8n3hjr31fut0
User talk:RansiwewikiHxdCircuit
3
483946
4640446
2026-06-16T13:49:52Z
MathXplore
3097823
advert1 ([[m:User:ZbVl/VD|Vandoom]])
4640446
wikitext
text/x-wiki
== 2026-06-16 ==
<div class="mw-content-ltr" dir="ltr" style="text-align: left" lang="en">[[File:Information.svg|25px|alt=Information icon]] Hello. Apologies for writing this in English, but I wanted to let you know that one or more of [[Special:Contributions/RansiwewikiHxdCircuit|your recent contributions]] have been undone because they appeared to be promotional. [[:m:en:WP:SOAPBOX|Advertising or using <span style="white-space:nowrap">Wikibooks</span> as a "soapbox"]] are not permitted. Take a look at the welcome pages to learn more about <span style="white-space:nowrap">Wikibooks</span>. Thanks. </div><!-- Glow-advert1 @ 1781617790080.9s --><nowiki></nowiki> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:49, 16 June 2026 (UTC)
60xaqi68hx3xwkhrs2udo5huhi5si86
4640491
4640446
2026-06-17T05:04:44Z
RansiwewikiHxdCircuit
3607193
/* 2026-06-16 */ Reply
4640491
wikitext
text/x-wiki
== 2026-06-16 ==
<div class="mw-content-ltr" dir="ltr" style="text-align: left" lang="en">[[File:Information.svg|25px|alt=Information icon]] Hello. Apologies for writing this in English, but I wanted to let you know that one or more of [[Special:Contributions/RansiwewikiHxdCircuit|your recent contributions]] have been undone because they appeared to be promotional. [[:m:en:WP:SOAPBOX|Advertising or using <span style="white-space:nowrap">Wikibooks</span> as a "soapbox"]] are not permitted. Take a look at the welcome pages to learn more about <span style="white-space:nowrap">Wikibooks</span>. Thanks. </div><!-- Glow-advert1 @ 1781617790080.9s --><nowiki></nowiki> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:49, 16 June 2026 (UTC)
:Hello, thank you for letting me know.
:I understand the concern. My intention was not to advertise or use Wikibooks for promotion. I added the link because it is a PCB stackup tool that may help readers better understand PCB layer structures and stackup design.
:Thank you for your guidance. [[User:RansiwewikiHxdCircuit|RansiwewikiHxdCircuit]] ([[User talk:RansiwewikiHxdCircuit|discuss]] • [[Special:Contributions/RansiwewikiHxdCircuit|contribs]]) 05:04, 17 June 2026 (UTC)
6sfn5tryqx72nxq73zcr0nsmhu7yvmo
Talk:FFMPEG An Intermediate Guide/MPEG
1
483947
4640449
2026-06-16T14:24:15Z
~2026-35290-87
3607225
/* broken link */ new section
4640449
wikitext
text/x-wiki
== broken link ==
the "Motion Picture Experts Home Page" hyperlink toward the top of the page leads to a 404 [[Special:Contributions/~2026-35290-87|~2026-35290-87]] ([[User talk:~2026-35290-87|talk]]) 14:24, 16 June 2026 (UTC)
2ieiqiaxa6g45vp7jhfm4ot21m8fxz4
4640481
4640449
2026-06-17T02:45:13Z
PieWriter
3546965
/* broken link */ Reply
4640481
wikitext
text/x-wiki
== broken link ==
the "Motion Picture Experts Home Page" hyperlink toward the top of the page leads to a 404 [[Special:Contributions/~2026-35290-87|~2026-35290-87]] ([[User talk:~2026-35290-87|talk]]) 14:24, 16 June 2026 (UTC)
:@[[User:~2026-35290-87|~2026-35290-87]] I updated it with a link from Wikipedia. [[User:PieWriter|PieWriter]] ([[User talk:PieWriter|discuss]] • [[Special:Contributions/PieWriter|contribs]]) 02:45, 17 June 2026 (UTC)
pce3wv2rd6bx9o0uvmfksn4ym60emq0
Tagalog/Conjugation
0
483948
4640468
2026-06-16T21:11:45Z
Carlossn77716
3607355
Created page with "TBA"
4640468
wikitext
text/x-wiki
TBA
kd1620ukml0ssm2lahetsf8y997ay3c
Cookbook:Americanized Eggplant Parmesan
102
483949
4640469
2026-06-16T21:17:20Z
Mahagaja
13610
start recipe
4640469
wikitext
text/x-wiki
{{Recipe summary
| Category = Italian-American recipes
| Difficulty = 3
}}
{{recipe}}
Unlike traditional Italian ''Melanzane alla Parmigiana'' (see [[Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) I]] or [[Cookbook:Eggplant Parmesan (Melanzane alla Parmigiana) II]]), which is intended as a starter and thus not particularly filling, this Americanized recipe is served on top of pasta and has a higher cheese to eggplant ratio for more protein. It is thus a delicious vegetarian main dish.
== Ingredients ==
* 1 small [[Cookbook:eggplant|eggplant]], approx. 300–400 [[Cookbook:gram|g]]
* [[Cookbook:Salt|Salt]]
* 1 [[Cookbook:mozzarella|mozzarella]] roll, approx. 300 g
* 100 g [[Cookbook:flour|flour]]
* 1 [[Cookbook:egg|egg]]
* 25 [[Cookbook:milliliter|ml]] [[Cookbook:milk|milk]]
* 100 g [[Cookbook:Bread Crumbs|panko]]
* ½ [[Cookbook:teaspoon|tsp]] [[Cookbook:Garlic Powder|garlic powder]]
* ½ tsp [[Cookbook:Black Pepper|black pepper]]
* ½ tsp dried [[Cookbook:oregano|oregano]]
* 20 g + 20 g [[Cookbook:Parmigiano Reggiano|Parmigiano Reggiano]], grated
* [[Cookbook:Canola Oil|Canola]] or [[Cookbook:Olive Oil|olive oil]] in a sprayer
* 1 jar pasta sauce, approximately 300–400 g
* 15 g fresh [[Cookbook:basil|basil]] leaves
=== Procedure ===
# Cut off the top and bottom of the eggplant and [[Cookbook:Slicing|slice]] it into six slices of equal thickness.
# Salt both sides of each eggplant slice generously and place the slices between several layers of [[Cookbook:Paper Towel|paper towel]].
# Weight the eggplant slices down with something heavy, such as a cast-iron [[Cookbook:Frying Pan|frying pan]], an encyclopedia, or an obese cat.
# Let the eggplant slices rest under weight for at least an hour, until they have released a substantial amount of moisture.
# Preheat the oven to 180°C.
# Slice the mozzarella roll into six slices of equal thickness and arrange on fresh paper towels and let stand for about 20 minutes while you prepare the following steps.
# Put the flour in a wide, flat bowl.
# Whisk the egg and milk together in a second wide, flat bowl.
# In a third wide, flat bowl, combine the panko, garlic powder, pepper, oregano and 20 g of Parmigiano.
# Dredge the eggplant slices first in flour, then in the egg/milk mixture, then in the panko.
# Spray oil on the inside of the [[Cookbook:Air Fryer|air fryer]] and on one side of each eggplant slice.
# Lay eggplant slices in the air fryer basket, oiled side down, then spray the top side with additional oil. You may need to work in batches, since probably not all slices will fit in the basket at once.
# Cook in the air fryer at 180°C for 10–12 minutes, turning halfway through.
# While the eggplant is cooking, spread a thin layer of pasta sauce on the bottom of a rectangular baking pan.
# When the eggplant is done, place the slices on top of the pasta sauce in the baking pan.
# Lay one slice of mozzarella on top of each slice of eggplant.
# Pour one large spoonful of pasta sauce over each slice.
# Sprinkle the remaining 20 g of Parmigiano evenly over all slices.
# Bake for 20–30 minutes or until the sauce is bubbling.
# Turn the oven to [[Cookbook:Broil|Broil]] and brown the cheese on top for 2–3 minutes.
# Remove from oven and arrange fresh basil leaves on top.
# Cover with [[Cookbook:Aluminium Foil|aluminum foil]] and allow to stand while you boil fusilli or penne [[Cookbook:pasta|pasta]], which the eggplant parmigiana will be served on top of.
[[Category:Air fried recipes]]
[[Category:Italian-American recipes]]
[[Category:Recipes using eggplant]]
[[Category:Recipes using mozzarella]]
[[Category:Recipes using parmesan]]
[[Category:Recipes with metric units]]
[[Category:Vegetarian recipes]]
bi62tb3p2wb5e9ele83aodd41a70nwk
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nd4/4. Nxe5/4...Qg5/5. O-O
0
483951
4640499
2026-06-17T05:59:33Z
Y7at7Y
3582263
Created page with "{{Chess Opening Theory/Position|Blackburne Shilling gambit |parent=[[Chess/Italian Game|Italian Game]]}} == 5. O-O == White resists the temptation to take the 'free' pawn on f7 but instead calmly castles, sacrificing their e5 knight while defending g2 and relocating their king to safety. '''[[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nd4/4. Nxe5/4...Qg5/5. O-O/5...Qxe5|5...Qxe5]]''' is obviously the best move. Black captures the free knight and is now..."
4640499
wikitext
text/x-wiki
{{Chess Opening Theory/Position|Blackburne Shilling gambit
|parent=[[Chess/Italian Game|Italian Game]]}}
== 5. O-O ==
White resists the temptation to take the 'free' pawn on f7 but instead calmly castles, sacrificing their e5 knight while defending g2 and relocating their king to safety.
'''[[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bc4/3...Nd4/4. Nxe5/4...Qg5/5. O-O/5...Qxe5|5...Qxe5]]''' is obviously the best move. Black captures the free knight and is now up 2 points of material, but they are only slightly better as White will get developmental compensation after 6. c3 followed by 7. d4.
== Theory table ==
{{Chess Opening Theory/Table}}
{{Chess/theory table |links=1
|line1=5...Qxe5 6. c3 Nc6 7. d4 Qe7 8. e5 d6
|eval1={{Chess/not|unclear}}
|name1=Blackburne Shilling gambit
|line2=5. ... ... 6. ... ... 7. ... Qxe4?? 8. Re1!
|eval2=+-
|line3=5. ... ... 6. ... ... 7. ... Qf6?! 8. f4
|eval3={{Chess/not|unclear}}
|line4=5. ... ... 6. ... Ne6 7. d4 Qxe4 8. Re1 Qc6
|eval4={{Chess/not|unclear}}
|line5=5. ... ... 6. ... Bd6!? 7. g3 Ne6
|eval5={{Chess/not|unclear}}
|line6=5. ... ... 6. ... ... 7. cxd4?? Qxh2#
|eval6=0-1
}}
== References ==
=== See also ===
{{Wikipedia|Blackburne Shilling Gambit}}
{{ChessMid}}
{{ChessFooter}}
8cdlnoj78cu9d1bbxa5omq0qrrqcfi5