Monday, August 24, 2020

The Joys and Despairs of Playing Video Games free essay sample

Do you arrive at level 80 on World of Warcraft? Or on the other hand do you beat all of New Super Mario Brother’s universes in a single day? Have you gotten exhausted of the entirety of your computer games that you have to reset every one of them? On the off chance that you said yes to any of these inquiries, at that point you may be dependent on computer games. This may alert you in the event that it is valid, however please remain quiet. I’ll be straightforward with you. I play computer games myself, yet I don’t go over the edge with it. Computer games are fun, yet in light of the fact that you have them doesn’t mean you can disregard them. You despite everything need to work out. Playing computer games over and over again can prompt some downright terrible reactions like increment of weight, harming in the thumbs and hand joints. Carpel Tunnel Syndrome is regular in regular daily existence, for example in the event that you message 2000 words per day, p lay computer games for quite a while, or just more than once utilize your hands. We will compose a custom paper test on The Joys and Despairs of Playing Video Games or on the other hand any comparable point explicitly for you Don't WasteYour Time Recruit WRITER Just 13.90/page Don’t feel that all the things about computer games are awful. They help a great deal with deftness, and they develop muscle in your grasp. But on the off chance that you do it to an extreme, at that point your fingers could start to hurt. You might be believing that you don’t play computer games or you don’t have computer games. All things considered, in the event that you play tabletop games, at that point you are in danger for Carpel Tunnel Syndrome, since you are as yet moving your hands over and again. In the event that you do get Carpel Tunnel Syndrome from playing such a large number of computer games, you can get a support, get infusions, or simply quit doing what exasperated it. â€Å"But there is a little possibility of that event, and I type on the PC the entire day and my fingers are as yet the same†, says Zachary Bruennig. All things considered, Zach, there is something else that becomes possibly the most important factor, and that is your age and youth. It doesn’t influence you until you get in your later 20’s. You may have computer games and simply play one out of 61 that you have. Be that as it may, in the event that you play that one game constantly, at that point you may in any case be in the I have no life and a dependence on Mario Bros class. Enslavement doesn’t need to occur with the games with a huge amount of viciousness or fighting in them. Compulsion can be in any game that you like, and that you are great at. This could be a game, activity game, music game or any game on the planet. There are a great deal of topics like Mario and Luigi, Sonic the Hedgehog, Megaman, Rock Band, or Guitar Hero. So computer games are fun, however abusing them has costs. The significance of this entire article was not to point video gamers off course, yet just to advise teenagers and youthful grown-ups to enjoy a reprieve now and then to rest your hands and attempt to not play them for 5 hours in a row.

Saturday, August 22, 2020

Opposing Views of the Effectiveness of Monetary Policy Essay -- Econom

Contradicting Views of the Effectiveness of Monetary Policy Financial approach is a ground-breaking administrative weapon which has truly demonstrated that it is hard to employ. This trouble is one reason why a few financial analysts question the adequacy of fiscal strategy in general. These financial analysts locate that money related arrangement is hard to actualize in view of estimation issues and time slack issues, just as cyclic impacts. They likewise call attention to circumstances in which money related approach may not work by any means. Then again, a few financial analysts depend on money related strategy as one of the most persuasive monetary instruments. These financial specialists show that controlling cash gracefully in America is a moderately youthful thought, and is growing quickly. They additionally endeavor to show that cash flexibly influences numerous factors in our economy, and that it is helpful in a bigger number of circumstances than the counter money related strategy business analysts, Keynesian financial analysts, wou ld have us accept. To measure the insufficiency of money related strategy a few financial specialists point out our the extraordinary gloom. How could administrative monetarists permit one fourth of the nation to be unemployed[1] or for 33% of business banks to be made bankrupt by â€Å"bank panics?†[2] People who participated in these bank frenzies were taking out their â€Å"own† cash, yet were taking out potential advances for other people (the sum they took out increased by the cash multiplier) which in the long run got 31% of the absolute cash supply.[3] The financial specialist best fit to utilize money related arrangement would have the option to tell the future, or if nothing else give a quite decent gauge. These evaluations are exceptionally troublesome when at times the consequences of approach activities are not seen for a considerable length of time to longer than a year. Redresses of these ... ...ed: Mishkin, F.S. The financial matters of Money, Banking, and Financial Markets. 6th Edition. 2003. Schwartz, A.J. Cash Supply. The Concise Encyclopedia of financial matters. The Library of financial aspects and Liberty. On the web: http://www.econlib.org/library/Enc/MoneySupply.html Meltzer, A.H. A Liquidity Trap? On the web: http://www.gsia.cmu.edu/afs/andrew/gsia/meltzer/a_liquidity_trap.pdf On the web: http://www.korpios.org/resurgent/Fed.htm What Role did the Fed Play in Causing the Great Depression? Ueda, K. Discourse at Japan Society of Monetary financial matters. December, 2001. On the web: http://www.boj.or.jp/en/press/koen072.htm#0202 On the web: http://www.arts.unimelb.edu.au/amu/ucr/understudy/1997/Yee/depression.htm The Cause of the Great Depression in 1929. On the web: http://www.shambhala.org/business/goldocean/causdep.html What Caused the Great Depression of the 1930’s?

Thursday, July 23, 2020

Word of the Week! Existential Richmond Writing

Word of the Week! Existential Richmond Writing This word seems easy enough. The adjective refers to existence. That is, indeed, the earliest definition in The OED Online, of or relating to the existence of a thing. That sense goes back as far as the 17th Century. Outside of academia, one often encounters the word in the sense of being a matter of life or death. Ive heard   North Korean nuclear weapons, unmarked asteroids hurtling by the Earth, and slowly mounting climate change all referred to as existential threats to human civilization or even the survival of our species. If only, however, it were that stark. We would have a very short post indeed this week, but we can blame mid-20th-Century philosophers and writers for making matters existential so complex. Here the OED and other references take us into the realm of existential philosophy, or existentialism. If you have read the works of Sartre or Camus, you may consider it a gloomy school of thought. Read The Stranger, or any of American author Paul Bowles austere and beautiful fiction to encounter the core of existentialism: that humans are alone in an indifferent if not hostile universe. Our actions, while freely chosen on our parts, mean, finally, nothing. Yet an existentialist philosophy need not be so bleak. Ive been reading Mans Search For Meaning by Viktor Frankl, after running across the work as a reference in an article about the value of failure in learning. Frankl, an Austrian psychologist, not only survived Auschwitz and, almost as harrowing, a Bavarian concentration camp in the Second World Wars last months, but he practiced medicine in the latter camp. He had little to offer fellow prisoners aside from a few aspirin doled out by the SS and kind words. Despite contracting typhus, Frankl reconstructed a manuscript seized from him at Auschwitz. It contained a new system of psychology that Frankl called logotherapy. This was an existentialist form of therapy to address what the psychologist called the existential vacuum of modern life, where cultural traditions have waned and leisure time often results in mere boredom. Frankls theory and practice emphasize focusing on creating meaning in ones life and pursuing goals, even in the bleakest situations. Thats hardly gloomy, yet there too our word of the week speaks to the essentials of human existence. This blog will continue all summer, so nominate a word by e-mailing me (jessid -at- richmond -dot- edu) or leaving a comment below. See all of our Words of the Week  here. Images of Viktor Frankl, by Prof. Dr. Franz Vesely, and of Paul Bowles courtesy of Wikipedia.

Friday, May 22, 2020

The Divine Comedy By Dante Alighieri Essay - 2228 Words

There is no doubt that Dante Alighieri (1265-1321) has made a momentous contribution to Medieval literature in general and Italian in particular. He is best known for his magnum opus, The Divine Comedy. It is a brilliant masterpiece of literature which students read as a part of their curriculum in literature courses, in order to probe the mind of a genius commenting on both temporal events and the spiritual, scientific, and philosophical themes and concerns of his predecessors and peers, thereby rendering it one of the most incredible works of the Middle Ages. As a matter of fact, the Divine Comedy has been widely read, from the time of its emergence until the present, due to its vivid and memorable depiction of three realms of the afterlife in the Roman Catholic milieu of his day: Hell, Purgatory, and Heaven. Dante’s Divine Comedy, though, touches upon very sensitive topics, including, but not limited to, racism, anti-Semitism, and Islamophobia. In this paper, I would like t o focus specifically on anti-Semitism and Islamophobia, particularly those incidents conveyed in the Inferno. Dante offers a number of harsh criticisms of the Abrahamic traditions, and treats some of their most eminent and historical figures in a dreadful manner. The question, which I intend to address, involves discussion of the current debate surrounding what are called â€Å"trigger warnings† in academic circles, in terms of whether or not such warnings are necessary in the teaching of the Divine Comedy.Show MoreRelatedThe Divine Comedy By Dante Alighieri873 Words   |  4 Pagesâ€Å"The Divine Comedy† is an epic poem written by Dante Alighieri. He wrote the epic sometime between 1308 and 1321, the year he died. It is considered one of the greatest works of world literature. He wrote â€Å"The Divine Comedy† while he was exiled from Florence, Italy (Bishops 182). â€Å"The Divine Comedy† recounts Dante’s idea of the afterlife. It is written in a first person perspective and follows Dante’s journey through Hell, Purgatory, and Heaven. At the time Dante wrote the Divine Comedy, Italy wasRead MoreThe Divine Comedy By Dante Alighieri1725 Words   |  7 PagesIn composing the Divine Comedy, Dante Alighieri has created and brought to his readers three examples of literary brilliance. A masterfully written poem that still serves as a preface for contemporary heaven/hell/purgatory imagery, the divine comedy brings readers along for the ride on Dante’s path towards salvation. Depending on how gullible one may be, interpretation of the legitimacy of the Divine Comedy is varied; that is to say, although a few might believe Dante actually did somehow travelRead MoreThe Divine Comedy By Dante Alighieri Essay1691 Words   |  7 PagesDante Alighieri is known as one of the greatest Italian poets. One of Alighieri’s most famous works of art would be his poem called the Divine Comedy written in year 1320. The poem itself has a heavy Christian influence and it entails the journey of Dante, the protagonist as he travels through hell, purgatory and finally paradise. Additionally, the poem captures Dante’s journey as he gets closer to god. As Dante first enters Inferno, (also known as hell), he meets Virgil, who is not only his mentorRead MoreThe Divine Comedy Dante By Dante Alighieri1101 Words   |  5 Pagestry our best or we give up and follow other paths. Dante Alighieri, born in Florence, Italy in 1265, was born into a very power hungry age. Mor ality was not very high on someone’s to-do list. In the Divine Comedy Dante makes a point of writing about those that have done him wrong and placing them where the â€Å"belong†. But Dante does not only expose the bad people in his life but the bad people all over the world and he also includes himself. Dante writes his book to scare others into changing to beRead MoreThe Divine Comedy By Dante Alighieri1277 Words   |  6 PagesDante Alighieri wrote the Divine Comedy from 1308-1320. The story narrates Dante’s pilgrimage through hell, purgatory, and heaven while guided by Virgil and Beatrice. Throughout this journey Dante conforms himself to virtue, properly orders his passions, and conforms his conscience, â€Å"Dante s psychopoiesis operates through the mimetic deformation, reformation, and transformation of conscience† (Macready, 2). This essay will examine what a true conscience is according to the Catechism of the CatholicRead MoreThe Divine Comedy by Dante Alighieri Essays983 Words   |  4 PagesThe Divine Comedy by Dante Alighieri Dante Alighieris The Divine Comedy, Purgatory Dantes The Divine Comedy section of Purgatory is a depiction of Dante and his struggle to reach paradise. He is a character as well as a narrator. The purgatory section deals with the seven deadly sins and Dantes task of cleansing himself on his journey to heaven. He confronts many different people on his journey to self-righteousness, which help and guide him to his destiny. Accompanied by Virgil or reasonRead MoreThe Allegorical Messages of The Divine Comedy by Dante Alighieri 598 Words   |  2 PagesThe beginning lines of The Divine Comedy by Dante Alighieri indicate a pragmatic journey through the dark woods. It is soon evident that The Divine Comedy is in terms of an allegory. Midway through his life, Dante finds himself lost and in darkness. He is confused and unaware of how he has ended up in these dark woods. Dante soon comes across Italian poet Virgil, who will guide him through the Nine Circles of Hell. Dante Alighieri’ s The Divine Comedy: Inferno portrays Dante’s life and adventure throughRead MoreDante Alighieri and his Divine Comedy Essay596 Words   |  3 PagesDante Alighieri (1265-1321) was an Italian poet in the Middle Ages. The Divine Comedy, of which Inferno is a part, is considered the greatest literary work in the Italian language and a masterpiece. Inferno is the story of Dante the pilgrim’s journey from the dark wood of error through Hell, led by Virgil. This is Dante the pilgrims opportunity to recognize his sins; he is given the opportunity to see how the error of his ways will be punished if he does not change. In Dante’s Hell, the punishmentRead MoreThe Vaule of Personal Development in The Divine Comedy, by Dante Alighieri1209 Words   |  5 PagesIn Italian Dante Alighieri (1265) Poem, The Divine Comedy Inferno, Translated by Mark Musa. Dante demonstrates the value of personal development which is the ability to keep a balanced life and continuously learn f rom past mistakes in order to create a better future. Dante begins the poem wrapped in his own thoughts and suffering but by the end of the poem he begins to understand other’s sufferings beyond his own. In his growth throughout his journey he learns about pain and sorrow that he cannotRead MoreHow Literature Changed a Nation: Dante Alighieri and The Divine Comedy1146 Words   |  5 PagesMaking change in a time of dark beliefs and harsh criticism is a difficult task to achieve. The poet, Dante Alighieri’s world was one filled with spirituality and stigmas. Unlike many other artists of his time, he completed his most famous and influential work in Europe’s 1300’s. Dante’s piece, The Divine Comedy, demonstrates the journey one takes throughout life, to find one’s self and connect with the world and religion, all through three volumes of poetry. Of his talent, came a business of the

Thursday, May 7, 2020

The United States Aviation Security - 888 Words

More than a decade ago, a tragic and one of the saddest incidents in our history occurred on U.S soil. On September 11, 2001 the United States were attacked by a group of terrorist who were able to infiltrate our security system from all angles. It was a very tragic event for the U.S, when terrorist attacked two landmarks in New York City, a densely populated area. Although this terrorist attack was very unfortunate, it was also the largest infiltration of the United States Aviation system through multiple breaches of aviation security. Immediately after the attack many changes were made to aircrafts and the airport system. This Day brought America to its knees, however at the same time, illustrated the weakness of America’s Security methods in identifying threats and terrorist activities. Prior to 9/11 the airlines and airports were responsible for managing the screening checkpoints .The aviation and Transportation Security Act of 2001 was passed shortly after September 11, to address the immediate needs of aviation security. This act caused the birth of Transportation Security Administration (TSA) under the U.S department of transportation, who were then now responsible for handling all screening at all U.S airports. With all the new directives some rules were implemented immediately, where as others took a while before they were in effect. Some of The new rules that were implemented immediately were that passengers were banned from carrying knives, box cutters, andShow MoreRelatedAviation Security : The United States2113 Words   |  9 PagesAviation Security has evolved over the past 40 to 50 years showing the constant change in terrorist acts in which the security of all passengers, crew, and aircrafts are at risk. The United States Government must, now, stay up to date with the newest technology for screening passengers and their belongings. The technology was not available 50 years ago, making it much more difficult for countries to maintain safer environments in their airports. Hijackings in the United States was a major shift inRead MoreAviation Security: An Increased Focus and Concern919 Words   |  4 PagesAviation Security: Aviation security primarily exists in order to prevent criminal activities in airports and on aircrafts in general. Civil aviation security is geared towards preventing criminal activities like sir piracy or hijacking, attack on passengers and aviation employees, and destruction of aircrafts. While aviation security was a minor concern in the initial years of aviation, it has become a major issue of concern in the modern world. Actually, civil aviation security is a high priorityRead MoreAviation Security and Al Qaeda in Yemen: Findings and Recommendations923 Words   |  4 PagesAviation Security and al Qaeda in Yemen Aviation Security and al Qaeda in Yemen: According to reports by many administration officials, al Qaeda in the Arabian Peninsula (AQAP) has tried on various occasions to attack the United States homeland. As a result, the Yemen-based terrorist group or organization is regarded as the most lethal affiliate of al-Qaeda network. Since December 2009 to December 2010, AQAP has tried to attack the American homeland at least of two separate occasions. The firstRead MoreThe Global Air Transport Industry1515 Words   |  7 Pagesdoubling Chile or Singapore. There are 13.4 million indirect jobs in industries supplying the tourism industry are supported by visitors that fly in. These include employment and activities of suppliers to the air transport industry, places like aviation fuel suppliers; construction companies that build airport facilities; manufacturers of goods sold in airport retail outlets; suppliers of sub-components used in aircraft; and a wide variety of activities in the business services sector. CompaniesRead MoreBusiness 360 Airport Safety And Security1005 Words   |  5 Pages Aviation Cyber Security Yulissa Menendez Aviation Management Business 360 – Airport Safety Security Dr. Robert Aceves Section: PQ March 2nd, 2015 Abstract The aviation industry has rapidly changed and is constantly expanding because of new technology entering the market. Currently the passengers are more linked with airlines and flights though technology. New technology produces a high risk of disturbance. Thus, airlines need to take action to maintain passengers and flight informationRead MoreScope And Complexity Of The Aviation Transportation Industry825 Words   |  4 Pagescomplexity of the aviation transportation industry is one that requires cooperation on local, state and federal levels, as well as, international agreements of cooperation in its ability to monitor, gather information, investigate, defend and recover from attacks against the industry. Elias (2010) states that the roles for which each entity is responsible is guided by specific authorities, existing laws and regulations and the availability of assets and capabilities. Prior to 9/11, the security of aviationRead MoreCase Analysis On Airport Security Screening 1209 Words   |  5 PagesCase Analysis on Airport Security Screening Following the tragic events of September 11th, 2001, the 107th Congress passed the Aviation and Transportation Security Act, establishing the Transportation Security Administration (TSA) (History, 2014), and transferred the responsibility for civil aviation security from the Federal Aviation Administration (FAA) to the TSA (Statute and Regulation History, 2012). The Act was passed in just two months following the terrorist attacks, and likely wouldRead MoreScreening at Aiports After September 11, 2001 Essay1345 Words   |  6 Pagesseries of four coordinated attacks against the United States by a known terrorist group, Al-Qaeda, in New York City and Washington, D.C. (Associated Press, 2003). These attacks changed the security of aviation throughout the nation. After 9/11, the image of general aviation (GA) was tarnished because the 9/11 hijackers trained in small GA aircraft in the United States (Elias, 2010). Even though the hijackers trained on GA aircraft the area of aviation th at experienced the largest overhaul is screeningRead MoreThe Evolution Of The International Civil Aeronautics Organization1586 Words   |  7 Pages International Civil Aeronautics Organization Research Paper Kyle Whigham Middle Tennessee State University Prior to World War I, with the increasing number of international flights around the world, delegates from 18 European nations gathered in Paris, France at a conference to discuss international air law code. No decision was reached prior to World War I breaking out, and many of the European nations involved in the discussion had their attentions drawn to more pressing issues, foremostRead MoreSeptember 11th And The World Of Aviation1415 Words   |  6 PagesMacy Oller Mr. Litz American Lit 09 December 2016 September 11th and the World of Aviation September 11, 2001 was a Tuesday and changed air transportation as we know it. This devastating day in history was when a total of four American Airlines airplanes were hijacked. Most collided with important United States buildings. The first two planes intentionally collided with each of the Twin Towers in New York. Shortly after, the third plane hit the Pentagon in Virginia. Amazingly, the passengers on

Wednesday, May 6, 2020

Research Paper on Elctrocardiogram (Ecg) Free Essays

Introduction The major function of the heart is to force blood in to a closed system of blood vessels within which the blood is confines and circulated to the entire body. Heart’s activity can be compared to a muscular pump equipped with one way valves. With each heartbeat, an electrical impulse travels through the heart and causes the heart muscle to squeeze and pump blood from the heart. We will write a custom essay sample on Research Paper on Elctrocardiogram (Ecg) or any similar topic only for you Order Now These electrical impulses, transmitted through the heart, are spread throughout the body. This electrical activity of the heart can be detected on the body’s surface and recorded with an instrument called an electrocardiograph. A graphic record of heart activity is called an electrocardiogram. An electrocardiogram is also called an EKG or ECG. Sometimes the test is called a 12-lead EKG or 12-lead ECG. This is because the heart’s electrical activity most often is recorded from 12 different places on the body at the same time. A healthcare provider may recommend an electrocardiogram if a person has signs and symptoms that suggest a heart problem (National Institutes of Health, 2010). Examples of signs and symptoms may include chest pain, breathing problems, unusual heart sounds, palpitation etc. However, this test can screen for early heart disease that has no symptoms. An ECG may be done as part of a routine health exam and may be used for routine screening before major surgery. Also, this test can be ordered to check how well heart medicine or a medical device, such as a pacemaker, is working (National Institutes of Health, 2010). ECG results can be used by the healthcare provider to help plan treatment for a heart condition. Different types of electrocardiograms Many heart problems are present all the time, and thus a commonly used 12-lead ECG test is sufficient to detect any of these problems. However, certain issues, such as those related to irregular heartbeats, can come and go. They may be present for only a few minutes out of the day, or while performing specific daily activities (e. g. , exercising). In these situations, special types of ECGs are used to help diagnose these types of problems. The different ECGs that can be used in these situations are: †¢Stress test: During stress testing, exercise or medications are used to make heart beat faster and work harder while conducting the ECG. †¢Holter monitor: This is a portable device that records the electrical signals of he heart for a full 24 to 48 hour period (Pagana Pagana, 2010). This is also called as an ambulatory ECG, as daily activities can be performed while wearing it. †¢Event monitor: This is a portable device like holter monitors, but they can be worn for more than a month and are used to detect abnormalities of short duration and that occur infrequently. This paper discusses 12-lead ECG tha t is most commonly used in health care settings. Explanation of ECG test and related physiology A typical ECG has three distinguishable waves or deflections. The relationship between the deflections waves of an ECG and sequential excitation of the heart is shown below (The Biology corner, 2011) Figure1. The sequence of excitation of the heart related to deflection waves of an ECG tracing. The first wave, the small P wave, lasts about 0. 08 s (Marieb Mitchell, 2010). This wave results from movement of the depolarization wave from the heart’s SA node through atria. The second wave, the QRS complex is the largest waves of all the three waves. It results from ventricular depolarization and precedes ventricular contraction. Average duration of the QRS complex is 0. 08 s (Marieb Mitchell, 2010). A prolonged QRS complex may indicate a right or left bundle branch block in which one ventricle is contracting later than the other. The third wave, the T wave is caused by ventricular depolarization and typically lasts about 0. 16 s (Marieb Mitchell, 2010). The P-R interval represents the time between the beginning of atrial depolarization and ventricular depolarization and it lasts about 0. 16 to 0. 18 s. A longer interval may suggest a partial AV heart block caused by damage to the AV node (Marieb Mitchell, 2010). Lack of impulses through AV node may indicate a total heart block. The Q-T interval is the period from the beginning of ventricular depolarization and repolarization that normally lasts 0. 31 to 0. 41 s (Marieb Mitchell, 2010). The shorter Q-T interval may indicate tachycardia, and a longer may indicate bradycardia. Normal/abnormal findings In a healthy heart, the size, duration and timing of the deflection waves tend to be consistent. For this reason, changes in the pattern or timing of the ECG may reveal a diseased or damaged heart or problems with the heart’s onduction system (Marieb Mitchell, 2010). An ECG gives two major kinds of information. First, by measuring time intervals on the ECG, a doctor can determine how long the electrical wave takes to pass through the heart (Pagana Pagana, 2010). Finding out how long the wave takes to travel from one part of the heart to the next shows if the electrical activity is normal or slow, fast or irregular. Second, by measuring t he amount of electrical activity passing through the heart muscle, a cardiologist may be able to find out if parts of the heart are too large or are overworked (Pagana Pagana, 2010). Normal ECG values include a heart rate of 60 to100 beats /min and an even and consistent heart rhythm (National Institutes Of Health, 2010). Abnormal ECG results may indicate a sign of following health issues: †¢Abnormal heart rhythms (arrhythmias) †¢Cardiac muscle defect †¢Congenital heart defect †¢Faster than normal heart rate (tachycardia) †¢Slower than normal heart rate (bradycardia) †¢Heart valve disease †¢Inflammation of the heart (myocarditis) †¢Changes in the amount of electrolytes (chemicals in the blood) †¢Past heart attack †¢Present or impending heart attack An electrocardiogram may be performed to diagnose additional conditions which are not listed above. ECG Procedure and Patient preparation The patient does not need to take any special steps before having an electrocardiogram. However, the nurse may ask about the medicines the patient is taking as some medicines can affect the results. Also, the nurse performing the test may instruct the patient to avoid exercising or drinking cold water immediately before an ECG, as it may cause false results. The procedure of an ECG is painless and harmless. A nurse will attach soft, sticky patches called electrodes to the skin of chest, arms, and legs. The patches are about the size of a quarter. Often, 12 patches are attached to patient’s body. This helps detect the heart’s electrical activity from many areas at the same time. The nurse may have to shave areas of the skin to help the patches stick. After the patches are placed on patient’s skin, he/she will lie still on a table while the patches detect heart’s electrical signals (Pagana Pagana, 2010). During the ECG recording, nurse may instruct the patient to lie quietly for 10-20 seconds, because the electrocardiograph will detect any muscle or body movement. A machine will record these signals on graph paper or display them on a screen. The entire test will take about 10 minutes. After an electrocardiogram, the nurse will remove the electrodes (soft patches) from the patient’s skin. Patient may develop a rash or redness where the EKG patches were attached. This mild rash often goes away without treatment. Patient usually can go back to his/her normal daily routine after an ECG. Summary An electrocardiogram is a painless, non-invasive diagnostic test that records heart’s electrical activity. This test shows, how fast a heart beats, whether the rhythm of the heart is regular or irregular and the strength and timing of electrical signals as they pass through each part of the heart. Healthcare providers use this test to study and detect many heart problems and the results of this test can also suggest other disorders that affect heart function. Conducting an ECG when appropriate is a primary step in increasing a patient’s survival, and leads to a clearer, gained understanding of what is actually happening to a patient’s heart. How to cite Research Paper on Elctrocardiogram (Ecg), Essays

Monday, April 27, 2020

Social Problems and Issues in Pakistan free essay sample

Historically, the dominant role played by Punjab, which is home to over 55 percent of the population and provides the bulk of the army and bureaucracy, has caused much resentment among the other three provinces. There had been little support for the independent state of Pakistan among Sindhis, Balochis, and Pashtuns; in fact NWFP and Balochistan had resisted incorporation into Pakistan. Ever since, Pakistan has battled secessionist movements in NWFP, Balochistan, and Sindh. In the early years, the deepest ethnic fault lines existed between the countrys east and the west wings, which resulted in Pakistans break-up in 1971.East Pakistan, predominantly ethnic Bengali, became the new independent state of Bangladesh. Grievances among and within provinces abound, especially over economic inequities and scarce resources. Pakistans major political parties are also divided along regional or ethnic lines, resulting in a lack of parties that can respond to national concerns. Monster of Economy Pakistans economy suffered serious setbacks from the floods in August 2010. We will write a custom essay sample on Social Problems and Issues in Pakistan or any similar topic specifically for you Do Not WasteYour Time HIRE WRITER Only 13.90 / page The government forecasted economic growth would drop to 2. 5 percent in 2010-2011 from 4. percent the previous year. Higher inflation is forecasted, and a growing fiscal deficit is expected to worsen as revenues remained low with a narrow tax base. Electricity shortages also cripple the economy and have often become the cause for violent protests in recent years. Plus, the economy relies heavily on textiles, which account for two-thirds of export income. The country averted a balance of payments crisis in 2008 with help from the International Monetary Fund, and in 2009 the current account deficit shrank with a pullback in imports and 18 percent growth in worker remittance inflows. The economy also suffers from low foreign direct investment due to increasing security problems. Pakistans government has long prioritized defense expenditure over investment in education and healthcare, which impedes its global competitiveness. High illiteracy rates, poor access to education and healthcare, and widening gender and socioeconomic gaps are expected to add to the states challenges, while fueling the narrative of militant groups seeking to use public disenfranchisement as broader recruiting tools. According to the United Nations, more than 60 percent of Pakistanis live on less than $2 a day, making Pakistan one of the worlds poorest states. Social Indicators Health Life Expectancy at Birth: 67 [Source: World Bank, 2008] Education (Literacy rate by gender) Adult Female Literacy Rate: 40 Adult Male Literacy Rate: 66.Adult Male Literacy Rate: 66. 8 [Source: UNESCO, 2008] Poverty Percentage of Pakistanis living below $2/day: 60. 3 [Source: UN Human Development Report, 2007] Although Pakistan is governed by a parliamentary form of civilian representation, the countrys strongest institutions have long been its army and primary intelligence service, the Inter-Services Intelligence (ISI). The constant tug between a powe rful army and a weak civilian government has impeded social development, as military rulers have frequently put more resources toward guarding against attack from rival India than social and economic development. A series of constitutional reforms have sought to limit executive powers and extend greater autonomy to the provinces to counter potential military takeovers. But fundamental changes to the civil-military relationship are required. A slow and inefficient judicial system rife with corruption, and lacking infrastructure and resources, has also fueled public frustration that has been exploited by militant groups in the past. From these competing challenges have emerged a varied set of political, judicial, and non-governmental actors.There are over ninety registered political parties in Pakistan representing a range of ethnic, secular, and religious constituencies. Islamic parties, some with ties to militant groups, have at times proven effective in building support to challenge the status quo. But around a half dozen major parties led by powerful families dominate civilian politics. The feudal systemwhere a small number of landholders control vast resourceshas been a cause for great socio-economic inequity. Powerful landowning families have dominated politics and exercised significant control over national affairs through the bureaucracy and the armed forces.Identification Challenges Population: 97% Muslim (77% Sunni, 20% Shia); 3% Hindus, Christians, and other religious groups. (Note: The numbers are based on the last census conducted by the government of Pakistan in 1998. ) Pakistan grappled with the question of its identity even before it was formedwhether to be a secular democratic country for Muslims and other religious minorities or an Islamic state. The early death of Pakistans founder, Mohammad Ali Jinnah, left the role of religion in society unsettled.The break-up of the country in 1971, when the east wing seceded to become the new state of Bangladesh, further added to the young nations insecurities. Since its formative years, Pakistans rulers have used Islam to define national identity. Both civilian and military governments have allowed religious extremist organizations to flourish and used them as instruments of state policy. In the 1980s, the military and the intelligence services, funded by Saudi Arabia and the United States, helped train and support Islamist fighters against the Soviets in Afghanistan.Pakistans leading role in the anti-Soviet campaign in Afghanistan also led to the radicalization of some of its Islamic religious schools or madrassas, where students were encouraged to join the Afghan resistance. The Pakistani army also backed Islamist militants fighting Indian rule in the disputed territory of Jammu and Kashmir. Another consequence of the states use of Islam for political purposes has been sectarian conflict and competition for official patronage between and within the many variations of Sunni and Shia Islam.Militancy While Pakistans military establishment has long been preoccupied with a conventional war against India, Pakistan has, since its inception, viewed indigenous militant groups as valuable proxies in its fight for regional influence. Immediately after independence in 1947, bands of insurgents were recruited to infiltrate areas of Indian-administered Kashmir to spur revolts; today groups like Lashkar-e-Taiba continue to stage operations in Kashmir with impunity, say many analysts.In Afghanistan, mujahadeen warriors partially funded by the United States and Saudi Arabia during the Cold War are today seen by some in Pakistan as unofficial members of their security structure. Many analysts believe Pakistans powerful Inter-Services Intelligence, or ISI, continues to foster close ties with proxy militant forces. Yet a historical reliance on militant groups has shown signs of backfiring, with some jihadi groups turning against the Pakistani state. In general, Pakistan-based militant groups can be divided into five categories, each with different targets, tactics, and motivations.They include: Kashmir-focused groups (like Lashkar-e-Taiba and Jaish-e-Muhammad), Pakistan-focused groups (such as Tehrik-i-Taliban), Afghan-f ocused fighters (like the Quetta Shura Taliban), transnational groups (al-Qaeda chief among them), and sectarian elements (most notably Sipah-e-Sahaba Pakistan). Nuclear Deterrence Pakistans nuclear ambitions were born in the 1950s as a deterrent to Indias conventional military superiority; the war with India in 1971 and the subsequent breakup of East Pakistan (present-day Bangladesh) prompted leaders in Islamabad to pursue nuclear weapons. Indias successful test of a nuclear device in 1974 spurred the rush to weaponize. By the mid-1980s, with assistance from European countries and China, Pakistan had mastered uranium enrichment technology, and in 1989, the United States concluded Pakistan possessed a nuclear warhead. Pakistan and India became full-scale nuclear-armed adversaries when, on May 28, 1998, Pakistani scientists tested their nations first nuclear device. Pakistan has since broadened its nuclear program by building civilian power and research reactors; it has also explored plutonium production technologies.According to some experts, Pakistan has the fastest growing nuclear arsenal in the world with seventy to ninety nuclear weapons and produces enough enriched uranium each year for five to six bombs. Control of its arsenal is governed by the armys Strategic Plan Division. Yet security of the countrys nuclear stockpile remains a significant concern (NewYorker) for Western and regional interests. There are also lingering fears about technology proliferation, given revelations in 2004 that Pakistans top nuclear scientist, A. Q.Khan, operated an international proliferation network. Relations with; INDIA Relations between India and Pakistan have been tense since August 1947, when Pakistan was carved out of territories in British-ruled India. The partition led to at least half a million deaths and massive population transfers. At the time of partition, both countries claimed the territory of Kashmir, a Hindu-ruled state with a Muslim majority. While academics on either side dispute the details, Kashmirs ruler eventually decided to accede to India, sowing decades of conflict. The neighbors have fought three wars and numerous skirmishes along the border. New Delhi accuses Pakistan of helping and supporting militant groups that target India. Islamabad, on the other hand, accuses India of fueling insurgency in Baluchistan. Both countries are increasingly competing for influence in Afghanistan, where Pakistan views Indias burgeoning relationship with Kabul as a threat to its interests in the region. Scarce resource sharing, especially of water, has emerged as another flashpoint. The rivalry has also resulted in a nuclear arms race between the two countries.The Soviet invasion of Afghanistan shifted the balance once more, causing Washington to enlist Islamabads support in countering the perceived Soviet threat. Yet when the Soviets withdrew in 1989, American support for Pakistan followed. In the early 1990s, Congress conditioned future economic and military aid on Pakistani abandonment of its nuclear weapons technology. After al-Qaedas September 11, 2001 attacks in New York and Washington, plotted in Taliban-controlled areas of Afghanistan, Pakistan again became a major U. S. ally.But lack of trust and lingering anti-Americanism has tested this alliance. KASHMIR ISSUE Kashmir is at the center of rivalry between India and Pakistan. At partition, both countries claimed Kashmir, a Hindu-ruled state with a Muslim majority. Kashmirs ruler eventually decided to join India, but the decision was never accepted by Pakistan. The two countries have fought two wars and a limited conflict over the disputed Himalayan territory. Both countries continue to claim sovereignty over Kashmir; thousands of Indian and Pakistani troops remain deployed along the borders.India controls 45 percent of Kashmir, Pakistan 35 percent, and the rest is held by China. Throughout the 1990s, Indian-administered Kashmir was wracked by separatist militancy supported by Islamabad. Over fifty thousand people have died in Indian Kashmir in the last two decades because of insurgency, Indian military excesses, and cross-border fighting. By the late 2000s, the insurgency had been largely vanquished by most accounts, but the Indian troops remained.In the summer of 2010, near-daily clashes between stone-throwing Kashmiri youth shouting slogans for freedom and the Indian security forces fueled a vicious circle of violence. Some Indian analysts dubbed the phenomenon Kashmir intifada as cry for self-rule grew louder in Indian-administered Kashmir. Numerous peace efforts between India and Pakistan have been tried over the last decades; most progress was made between 2004 and 2007 with increased people-to-people contact and greater trade.Yet a diplomatic solution remains elusive. CHINA Pakistan refers to China as its all-weather ally, as opposed to the United States, which is considered a fair-weather friend. Since establishing diplomatic ties in 1951, China and Pakistan have developed a close relationship that each values as a strategic hedge against their historical rival India. Border disputes lie at the heart of India-China rivalry; both claim vast swathes of each others territory along their long Himalayan border.India lays claim to Aksai Chin, a part of Kashmir under Chinas control, while China claims the Indian state of Arunachal Pradesh on the eastern sector of the border. Pakistan also played a key role in U. S. -China rapprochement in the 1970s. China is Pakistans leading arms supplier and has provided Islamabad with major military, technical, and economic assistance, including the transfer of sensitive nuclear technology and equipment. China has helped Pakistan build two nuclear reactors and in 2010 announced its plans to build two more, as it continues to support Pakistans nuclear program. Bilateral trade has been on the rise, and China is investing in several large-scale infrastructure projects: highways, gold and copper mines, electricity complexes, power plants, and, most recently, a deep-sea port at Gwadar in Pakistans Baluchistan province on the Arabian Sea. SAUDI ARABIA Pakistans relationship with Saudi Arabia is built upon solid economic, religious, and strategic ties. Saudi Arabia sided with Pakistan during its wars with India, and along with the United States, the Kingdom helped Pakistan fund mujahadeen against the Soviets in 1980s Afghanistan.Saudi investment in Pakistan peaked in 2005 (see chart at left), especially in the technology and real estate sectors, while bilateral trade hit $4 billion annually in 2009. But foreign direct investment (FDI) from Saudi Arabia started declining in 2008 in keeping with Pakistans downward trend in FDI inflows. Saudi domestic economic factors and the global recession played a role. Pakistans poor economic performance and l ack of infrastructure coupled with growing security concerns and political instability have also been responsible for decline in foreign investment. Pakistanis are among the largest ex-pat communities in Saudi Arabia, providing roughly one million laborers. Today, Islamabad and Riyadh continue to maintain deep military ties. On the nuclear front, intelligence officials told the Guardian in May 2010 that Saudi Arabia has funded as much as 60 percent of Pakistans nuclear program, and Bruce Riedel of the Brookings Institution says Pakistan provides its Gulf state partner with an unspoken nuclear umbrella.But perhaps Saudi Arabias most noted contribution to Pakistani society is its religious export, particularly the madrassas preaching a conservative form of Sunni Islam, which were built with Saudi money in the 70s and 80s. Saudi-funded madrassas in the countrys tribal region have educated tens of thousands of Pakistani men, including graduates who would become founders of the Afghan Taliban.

Thursday, March 19, 2020

Tasm Essays

Tasm Essays Tasm Essay Tasm Essay TASM Transputer Assembler User Guide TASM Version 91. 1 5/15/91 Copyright 1986s Option Information Option Descriptions 3 TASM Assembly Language Syntax Semantics TASM Assembly Language Introduction TASM Pseudo-Opcodes Sample TASM Program Assembly Language Listing Format Assembly Language Macros Operational Statistics Using the Preprocessor with TASM Notes on Using the Preprocessor 4 Appendix A: Error Messages Types of Error Messages Error Message Descriptions 5 Appendix B: Transputer Instruction Set Direct Functions Indirect Functions 6 Appendix C: TASM Internals Source Code Organization and Compiling Transputer Toolset TASM Transputer Assembler Introduction Overview TASM is a relocating assembler for INMOS Transputers. It supports standard INMOS mnemonics and allows splitting a program into separate pieces which are combined at linkage time. TASM is designed to be used in two ways: 1. As a post-pass to the TCX C compiler. The compiler generates an assembly language output file and TASM is used to turn it into relocatable format. The advantage of this scheme is the fact that the compiler can allow in-line assembly language without having to also have a redundant assembler built in. 2. As a stand-alone tool for doing assembly language programming on the Transputer. In this role it is often combined with the preprocessor from the C compiler (PP), which allows multi-line recursive macros, conditional assembly, include files, etc. TASM has been designed to be used with PP and can parse information PP provides to generate an assembly listing of source code which may have originated in many different files and been subsequently combined by PP. The architecture of the Transputer requires that some of the code generation be delayed until the linker/locater stage to insure minimum length prefix strings are generated for all instructions. TASM supports this by determining which instructions can be finished and which cannot at assembly time. TASM finishes those which can be and provides information to the linker (TLNK), about the others. TASM uses a multiple pass algorithm to determine which instructions can be finished and what the corresponding minimum length instruction prefix strings should be. The algorithm used doesnt guarantee minimum length prefixes in all cases (generating a minimum length program is a theoretically hard problem), but does a pretty fair job in a moderate amount of time. System Requirements TASM requires approximately 256K of program memory space to run. It should run in any environment which supports other major system development tools (compilers, etc). TASM does use a fair bit of disk space with temporary, output, and listing files. As an estimate, you should have disk space available that is twice the size of the input file for the temporary files, and space equal to the size of the input file for the output file (both types of files will be used at the same time when TASM is generating the output file). If you wish to generate a listing file you should have additional space available equal to twice the input file size. Note that a fair amount of I/O is done to the temporary files and they should be located on the fastest mass storage device available (see Usage section below for more information on how to specify this). 2 TASM Transputer Assembler Transputer Toolset Usage The general form of the TASM command line is: tasm ;input_filename; [;temp_directory;] [-[options]*]* The basic idea is to specify the required input filename (complete with filename extension if not . al), followed by an optional temporary file directory pathname, followed by any options needed. Note that in this case, since no explicit output filename has been specified, the output filename will default to that of the input filename, but with an extension of . trl in place of any extension the input filename had. The temporary file pathname is used to tell TASM to use somewhere other than the current directory (or if the TMP environment variable exists, the directory it specifies), to hold the temporary files TASM generates. If possible, the temporary file pathname (whether explicit or via TMP), should be set to the fastest mass storage available (ideally a rams Assume you wish to assemble a program stored on file foo. tal; The syntax needed is simply: tasm foo In this case TASM would use the TMP directory (or the current directory if TMP isnt defined), to hold its temporary files (foo. 1 and foo. 2). If you had fast storage available on pathname /fast you could use: tasm foo /fast If you wanted to write the relocatable output to some file other than foo. trl, say foobar. huh, you would use the -o option flag followed by the desired output filename: tasm foo /fast -o foobar. huh 3 Transputer Toolset TASM Transputer Assembler Option Information As seen above with the -o flag, an option flag may need a following parameter, although many option flags are simple switches which may be grouped together following a common - option flag lead-in. For instance, if you wish to toggle the verbose output mode and you wish to generate an assembly listing, the following command line will do it: tasm foo -lv Where the l indicates you want the listing and the v sets the output mode to verbose if TASM defaults to quiet and vice versa (actual default depends on the configuration of TASM). The above result could also be obtained by separating the option flags: tasm foo -l -v Please note, although in the above examples the option flags were in lowercase, uppercase is also allowed (some systems support nothing else)! Option Descriptions The following descriptions detail all the option flags available with TASM, what each does, and what additional parameters are required (if any): Option flag: -c This option is provided to compress the TASM output file. Doing this removes all the debug information. The big motivation is that this often cuts the output file size in half! It is particularly useful when building libraries or other chunks of code which arent routinely debugged. Option flag: -l As mentioned previously, this option causes TASM to generate an assembly listing. The filename for the listing is the same as the output filename with an extension of . lst. For example: tasm foo -l TASM would read the input file from foo. tal, use foo. trl as the output file AND write the listing to foo. lst. The -l option is not allowed if the original source text was not assembly language (see the -t option below). See later sections of this chapter for a description of the assembly language listing format. TASM Transputer Assembler Transputer Toolset Option flag: -o output_filename This option flag allows you to explicitly specify the output filename (including extension), for TASM to use for the relocatable output file. If you dont provide an explicit extension TASM will use . trl. Option flag: -q{0|1|2} These option flags allow you to control the level of prefix byte optimization that TASM will perform. The choices are -q0 (no optimization, all references will be 8 bytes long), -q1 (optimize to minimize the number of symbols and references which are passed on to the linkage phase), and the default, -q2 (maximum optimization by deferring ALL boundary cases to link time). The -q1 option is mainly provided for backward compatibility with pre-87. 8 versions of TASM (where it was the default). The -q0 option speeds up the execution of TASM in addition to potentially speeding up the execution of TLNK. During the early stages of program development use of the -q0 flag on all files which make up a program (including those from libraries), will eliminate the otherwise required prefix optimization performed by TLNK and thus hasten the development cycle. On the down side the -q0 option nearly doubles the program code size and execution time! Option flag: -t This option flag is used if the input file TASM is assembling was the result of a language translator. What this actually does is to inhibit TASM from counting input lines in an attempt to keep track of source input line numbers. TASM still accepts and updates its line number information in response to #line directives which are presumed to reflect the line numbers in the original source text. Using this option allows the line number information which is contained in the relocatable output file to represent the original source code line numbers instead of the (in this case), intermediate assembly language file line numbers. Using this option disables the generation of an assembly language source listing. Option flag: -v This option flag toggles TASM between the verbose and quiet output modes. Depending on the configuration of TASM this option will either cause additional information to be written to the user or disable same (the opposite of whatever the default setting is). 5 Transputer Toolset TASM Transputer Assembler TASM Assembly Language Syntax and Semantics The next several sections describe the syntax and semantics of the assembly language TASM accepts. TASM has some syntax and semantic features in common with C. Rather than repeat information which is familiar to many, we will refer you to a C reference manual for explanations about some features. The manual we recommend is: C A Reference Manual Samuel P. Harbison/Guy L. Steele Jr. Prentice-Hall, Inc. Englewood Cliffs, NJ 07632 Most other C texts also provide the level of description needed to understand the features TASM shares with C. TASM Assembly Language Introduction TASM uses the standard INMOS abbreviations for instruction names (see appendix B for a listing of these). TASM is line oriented with one instruction allowed per line. Each line has the following format: [;label_field;] [;opcode_field;] [;operand_field;] Some sample assembly language statements: test j @test ;Doesnt go anywhere very fast mint ;Minimum integer instruction .db hello ;Define C-style string constant label3 ;Single label with no opcode label4: ;Colons in labels are ignored As you can see, comments are allowed after a trailing ;, and last until the end of the line. Comments may appear anywhere in a line (including the first column), but anything afterwards is ignored. Labels are optional and must begin in the first column. The opcode field holds the instruction or pseudo-op name, it must not begin in the first column. The operand field contains any required parameters for the instruction or pseudo-op listed prior to it on the line. Fields should be separated with either spaces or tabs. Labels and other TASM symbols are from 1 to 255 characters long. They are case sensitive. Labels begin with a letter, a _ or a ? . They may contain those symbols plus digits. Labels may optionally be terminated with (or contain), one or more colon characters. Colon characters are allowed for compatibility with other assemblers and do not count as part of the label (you should not use a colon in any symbols you use in any operand fields). 6 TASM Transputer Assembler Transputer Toolset The operand field follows the label field and contains either an instruction opcode or a pseudo-opcode. The pseudo-ops are begun with a . , but are otherwise similar in form to opcodes (see the next section for information about them). The operand field contains different types of things depending on what the preceeding opcode or pseudo-op is. The types are: aâ‚ ¬? C style constant expressions. These include character constants and the other standard C features. You may also include symbols in constant expressions as long as they are defined in a . set pseudo-op prior to the constant expression in the file (no forward references allowed). Please see a C reference manual for a description of the constant expression syntax. Some examples: a -12 +1 (234+0x12)/022 + 33+ 23 ? 17 : 55 (help + me) / 0x3 ;help and me must be ; already . set $12 ;$ causes wordlength scaling In the above examples note that TASM allows a unary +, which is not legal in C (pre-ANSI anyway). The value of a constant expression is just its numerical equivalent. Thus, a constant expression in a data definition pseudo-op just defines a byte or word location with the specified value. A constant expression as an operand to an instruction just uses the numerical value to compute a prefix string for the instruction. Note that the $ symbol may be used before the start of a constant expression to force the value of the expression to be scaled (divided), by the processor wordlength in bytes. Since the $ may only appear as the first character in an operand field, it can only be used when the operand is a pure constant and not as part of the constant component of a non-constant expression. The expression to which the $ operator is applied must be a multiple of the scaling wordlength or an error will be flagged. aâ‚ ¬? C style string constants. These include the normal character escapes allowed by C and are only legal for use with the define byte pseudo-ops (. db or . dbnz). A string used with the . db pseudo-op will have the normal C style zero termination character while a string used with . dbnz will omit the terminator (the two pseudo-ops are otherwise identical). For example: .db Testing 1 2 3 7 Transputer Toolset TASM Transputer Assembler aâ‚ ¬? Address expressions. These consist of an symbol name followed by an optional constant expression. Some examples: hello+27 frank start -27+(0x66/2) The value of the symbols used in the above examples is the address of the corresponding symbol definitions, NOT the relative offset from the current program counter to the symbol. These types of expressions are not fully bound at assembly time since the actual load address for the program is unknown. The term bound is used here to mean that the value of the prefix string for an instruction (or the value to store into a data word), cant be determined until the actual location for the symbol definition is assigned by the linker (TLNK). These expressions are allowed as operands of instructions or define word (. dw), pseudo-ops (essentially word size pointers). aâ‚ ¬? Relative expressions. These consist of a @ followed by an optional symbol name, followed by an optional constant expression. These are allowed as operands of instructions or define word (. dw), pseudo-ops. They allow the PC relative offset from the instruction (or data item), to the specified constant or symbolic address to be the value of the expression. Some examples: @1 @hello +27 @ 100 0x10000 @ Gorge (a + z) 1 Note that there is a difference in value when a relative expression is used with an instruction versus its use in a . dw pseudo-op. When used with an instruction, the expression is evaluated so as to produce a prefix string which will correctly access the desired value (remember that the Transputer computes all relative offsets with reference to the memory location FOLLOWING the opcode byte of the instruction). In the case of the . dw pseudo-op, the value of the expression is the relative offset referenced to the START of the . dw memory location. Note that if a relative expression contains a symbol it must immediately follow the @. If the expression doesnt contain a symbol the constant expression is evaluated and the result is used as an address from which a relative offset is computed, starting at the appropriate current PC location, to determine the value to prefix the instruction with. For instance, if you wanted to create a jump to location 45 (decimal), you would use: j @45 Note that expressions which contain non-symbolic relative expressions cant be bound at assembly time since the load address for the instruction or data reference is unknown until link/locate time. 8 TASM Transputer Assembler Transputer Toolset Some examples of relative expression instructions with symbol names: cj @hello + 10 call @Byte_output .dw @Beginning_of_data + 10 Symbolic relative expressions can be bound at assembly time (assuming the symbol is defined locally, and there are no unbound instructions which are between the symbol definition and the instruction or . dw which references it). aâ‚ ¬? Difference expressions. These consist of an optional wordlength scaling operator ($), a symbol name minus another symbol name, followed by an optional constant expression. Some examples: @[emailprotected] + 1 hello-goodby zip-zap + 21 $zip-zap + 4 To most assemblers this type of expression is just a normal absolute reference. TASM treats this as a special case since the variable length effects of the unbound prefix strings may cause this expression to be only partly bound at assembly time. This form of expression may be used with both instructions and . dw pseudo-ops (the $ operator can only be used with instructions), but will probably be used most as an operand to ldc instructions which compute the branch length for lend instructions. For example: begin ;Beginning of loop body body of loop load pointer to lend parameter block ldc @[emailprotected] ;Compute branch length for lend lend ;Go back to beginning of loop end ;End of loop body Note that the optional $ wordlength scaling operator causes the value of the remainder of the expression to be scaled by the wordlength (in bytes), of the processor family for which TASM is assembling code. aâ‚ ¬? Floating point constants. These are used with the . real32 and . real64 pseudo-ops to initialize memory locations with the equivalent number represented in ei ther IEEE 32 bit or 64 bit binary format. The floating point constant syntax follows that of C. TASM doesnt support floating point assembly time math, just the conversion operation (similar to initializing memory locations with the results of the C atof function). Some examples: .real32 0. 0 ;Initialize a word to 0. 0 .real32 3. 1415926,12 ;Initialize two words .real64 1. 0,2. 0,3e-39 ;Initialize three double ;words 9 Transputer Toolset TASM Transputer Assembler TASM Pseudo-Opcodes The previous section covered the operand fields of instructions and pseudo-ops in abstract, this section covers them in detail. All TASM source files must begin with a pseudo-op which tells TASM what Transputer the code is being assembled for, since different versions support different instructions (and possibly different ways of generating code). The currently supported Transputers are the T2 series (T212/T222/T225), the T4 series (T400/T414/T425), and the T8 series (T800/T801/T805). To select a Transputer CPU type use one of the following pseudo-ops: .all ;Instructions for all 32 bit CPU types .t212 ;T212/T222/T225 are described as t212 .t414 ;T400/T414/T425 are described as t414 .t800 ;T800/T801/T805 are described as t800 Note that . all is the default if no processor type is explicitly selected. The . all selection is primarily used when building code which is intended to run on any 32 bit Transputer (such as demonstration programs). Also note that both opcodes and pseudo- ops may be in either upper or lower case and that all pseudo-op names begin with a period. All TASM source files should end with: .end ;No operand is required This causes anything beyond it in the source code to be ignored. The use of this pseudo-op is not strictly required since TASM treats the end of the file as a defacto . nd, but it is important when TASM is being used with the preprocessor (PP). PP will otherwise remove any trailing comments and conditional assembly code from the input file to TASM, and thus remove the trailing stuff from any assembly listing which TASM makes. 10 TASM Transputer Assembler Transputer Toolset Between these two pseudo-ops lies the body of the code. The remaining pseudo- ops are: 1. #line ;line_n umber; [;filename;] This violates the normal rules about pseudo-ops in that it begins with a #, and it also starts in the first column. This is emitted by the preprocessor to update TASM about where the next input line to TASM really came from in the source file. The optional filename field indicates that the next line is also coming from a different original source file (the result of PP doing a #include). The information from these pseudo-ops is used to enable TASM to put the code from the original source file on the assembly listing, instead of the merged mess which PP generates. Use your C reference to find out further about this preprocessor directive. . .align This pseudo-op tells TASM to word-align the next instruction or data statement. 3. .db value_for_byte [, value_for_byte]* This pseudo-op is used to initialize memory bytes to specific values. The value_for_byte field may be either a constant expression, or it may be a C style string (complete with automatic zero termination). 4. .dbnz value_for_byte [, value_for_byte]* This pseudo-op is identical to . db except the automatic zero byte termination of strings is eliminated. This pseudo-op was implemented to simplify the use of TASM with languages other that C (although the C string character escape sequences are still used). 5. .ds number_of_bytes This pseudo-op reserves storage for the specified number_of_bytes. Any constant expression may be used in the operand field. The space reserved in this way will be initialized to zero when the program is downloaded to the Transputer. 11 Transputer Toolset TASM Transputer Assembler 6. .dw value_for_word [, value_for_word]* This pseudo-op is used to initialize memory words (2 or 4 consecutive bytes depending on wordlength), to specific values. Note that this pseudo-op does NOT automatically perform word alignment; Use a . align prior to the . dw if alignment is necessary. The value_for_word field may contain the same types of operands as allowed for instructions (see the section on instruction operand fields). As mentioned in that secion, relative expressions applied to . w are relative to the beginning of the word, NOT the location following, as is the case with relative references in instructions. You may not use C style string constants with the . dw pseudo-op. 7. .emulate This pseudo-op enables instruction emulation. This is used when you wish to simulate the effects of instructions which the currently selected Transputer processor type doesnt directly support. For example, you tell TASM you are using a T414 pro cessor (via a . t414), then use a DUP instruction (after having given the . mulate directive). TASM will treat this as if you had given it an instruction of the form: call @? DUP Note that the instruction name called is always in upper case regardless of its original case in the input file. Also TASM will generate a . ext reference for symbols created this way if they havent been previously encountered in the source file. It is up to the programmer to supply the simulation routine being called! 8. .ext symbol_name [, symbol_name]* The specified symbol_names are declared to be defined external to this source file. Its presumed that the definitions will appear in other files which will be combined with the relocatable output of this one at link time. You may not both define a symbol within the current source file AND declare it . ext. If a symbol which is declared . ext is not also referenced in the source file, the external reference is not included in the relocatable output file (no error is generated). 12 TASM Transputer Assembler Transputer Toolset 9. ldc ;operand_field; This pseudo-op has the same syntax and semantics as the normal ldc instruction, but TASM and TLNK are free to use instructions other than ldc to load the desired value onto the top of the stack. This is useful when the immediate data to load is a large negative number and an equivalent code sequence of mint/adc can be used to load the same value in fewer bytes and instruction cycles. Another form of instruction sequence which may be generat ed is a ldc/ldpi sequence for cases when the current program counter is close to the desired address. This pseudo-op is extensively used by the TCX C compiler to minimize the length of static references. Note that this pseudo- op is affected by the . rel and . norel pseudo-ops when generating address expressions (code which computes the address of a symbol), for example: .ldc zip + 21 ;Load address of zip + 21 bytes Normally, this is allowed to use any of the optimization techniques to minimize the length of the generated code. However, if the . rel pseudo-op has been given, this form of reference is constrained to use the ldc/ldpi instruction sequence to maintain the runtime relocation capability. Note that all other forms of the . ldc instruction are unaffected by the current . rel/ . norel setting. 10. .mod module_number TASM supports up to 256 different modules, numbered 0 to 255. These modules are used to allow code and data which should be physically located in separate memory areas to be combined into the same source text stream. This facility corresponds to the code and data regions available with many assemblers, except 256 different modules are allowed. By default, if no . od is given, the code and data which is present in the source file is placed into module 0. The linker (TLNK), allows you to select where each module from each source file will end up (or you may let it do the locating job for you). 11. .noemulate This allows you to turn-off the instruction simulation facility which a previous . emulate enabled. 12. .norel A complement to the . rel pseudo-op, this allows the address form of the . dc instruction to generate the shortest/fastest possible code, ign oring the possibility of program runtime relocation. This pseudo-op is in effect by default and is used to turn- off the effects of a previous . rel pseudo-op. 13 Transputer Toolset TASM Transputer Assembler 13. .pub symbol_name [, symbol_name]* The specified symbol_names are declared to be defined within this source file and are made public, so that other files may refer to the symbol. You may not declare a symbol both . pub and . ext. If a symbol which is declared . ub is not also defined in the source file, the public reference is not included in the relocatable output file (no error is generated). 14. .real32 fp_value_for_word [, fp_value_for_word]* This pseudo-op is used to initialize memory words (4 consecutive bytes), to values which correspond to the IEEE 32 bit floating point representation of the specified value. Note that this pseudo-op does NOT automatically perform word alignment; Use a . align prior to the . real32 if alignment is necessary. The fp_value_for_word field may contain the same types of floating point constants that C allows. 15. real64 fp_value_for_double_word [, fp_value_for_double_word]* This pseudo-op is used to initialize memory double words (8 consecutive bytes), to values which correspond to the IEEE 64 bit floating point representation of the specified value. Note that this pseudo-op does NOT automatically perform word alignment; Use a . align prior to the . real64 if alignment is necessary. The fp_value_for_double_word field may contain the same types of floating point constants that C allows. 16. .rel Forces all . ldc pseudo-ops which follow to generate runtime relocatable code by using the ldc/ldpi instruction sequence for symbolic address expressions. This pseudo-op allows the generation of position independent code (assuming address expressions are not also used in initialized data areas, etc). Note that this pseudo-op will generally result in a somewhat larger/slower program since the other possibilities for . dc instruction optimization are thereby disabled. This pseudo-op is NOT in effect initially in TASM and may be turned off once invoked by the later use of the . norel pseudo-op. 14 TASM Transputer Assembler Transputer Toolset 17. .retf ;workspace_adjust_constant; This pseudo-op is used by our C compiler as a function exit code short form. It translates into a ajw instruction with the specified workspace_adjust_constant used as the operand field, followed by a ret. A couple of notes about the results of this pseudo- op: First if the constant value is zero, no ajw is generated. Second, any code after a . retf and before a label or pseudo-op is encountered is removed. Additionally, if the pseudo-op encountered is another . retf, the SECOND . retf is also removed! 18. .set symbol_name , constant_expression The specified symbol_name is defined to have the value of the corresponding constant expression. This pseudo-op provides a equate capability for forward and backward references. The symbol name may be subsequently used in the constant expression part of the operand field for an instruction or pseudo-op which follows the . set in the source file. The symbol is otherwise treated identically to symbols defined as labels (it may be declared public for instance). 19. .sym symbol_name [, address_expression] [, constant_expression]* This pseudo-op is used to hold debugging information for use by other tools in the Transputer Toolset. The arbitrary string, symbol_name, is assigned a series of values including an optional, symbolic, address_expression (whose exact value is unknown until linkage time), and zero or more, 4 byte, constant_expression fields. The actual use of this statement involves a convention between the tool generating them (TCX), and a later debugging tool which interprets them. See the information about the T_DEBUG_DATA, and T_DEBUGSYM_DATA, relocatable records, in the TASM/TLNK/TLIB RELOCATABLE RECORD AND FILE FORMAT manual, for more information. 0. .val symbol_name , constant_expression This pseudo-op is similar to . set but is used for assigning purely local constant values to the symbol_name. The references to a symbol defined this way must be strictly backwards and may not be external to the file. The primary advantage of . val over . set is that the symbol name used by . val may be redefined by a subsequent . val without having to create a new symbol. This is not possible with . set since both forwards and backwards references are allowed. 15 Transputer Toolset TASM Transputer Assembler Assembly Language Listing Format As mentioned elsewhere, TASM will generate an assembly language listing if the -l command line option flag is given. This file will be written on a filename which is the same as the input filename, but with an extension of . lst in place of any extension the input file had. TASM is designed to be used with the PP preprocessor, this carries over to the design of the listing facility for TASM. In particular, TASM can use information PP inserts in the input file to determine where the source text it is reading originally came from (say via #include PP directives). Using this information, TASM will find and use the original source code from wherever it came from when it creates the assembly listing. TASM cant create an assembly listing if the original source code was written in some language other than assembly (see the -t option flag). As a side note: If TASM detected assembly time errors it doesnt generate a relocatable output file. It also doesnt do the final binding passes it needs to resolve all the relative operand fields for instructions. This shows up on the assembly listing as instructions which are listed as un-bound (see below), when they really could have been bound. The format of the assembly listing is: statuslinelocationassembled_codesource_code The status field is used to show any error flags which were generated by that source code line, or a . if something on the line was not completely bound at assembly time. The possible error flags are: D Duplicate symbol definition error. E Expression field error. F Floating point constant error. N Not implemented error (opcode/pseudo-op). O Opcode/pseudo-op unknown error. U Undefined symbol error. See the corresponding error messages in appendix A for more information about what causes these errors. If the instruction was bound, and didnt contain any errors, this field is blank. 16 TASM Transputer Assembler Transputer Toolset The line field indicates which source code line this is. Note that the source code filename is shown on a banner at the top of the page initially, and a new page eject and banner is generated whenever the source code filename changes. The location field. This indicates the current location counter relative to the currently active module. This value will not be correct if the program contains any un-bound references, or errors, since the actual sizing and locating is delayed until linkage time. This field is shown for instructions or pseudo-ops which do anything interesting, and unconditionally for the first line in a new source file. The assembled_code field. This field contains up to the first 8 bytes of code the instruction or data pseudo-op generated. If the source line is un-bound, and this information isnt known yet, this field is used to show the value of whatever the source code operand field contained in the form of a constant expression. The source_code field. This contains the original source code as read from whatever file originally held it (assuming PP was used), or simply the TASM input file if PP isnt being used. Assembly Language ; Macros When PP is being used with TASM, multi-line macros may cause many assembly language statements to be generated for a single source statement. This is handled on the assembly listing by simply showing the single original source code line. The problem is that the meanings of the various fields to the left of the source code line change somewhat. The basic rules are: aâ‚ ¬? The status field shows the first error encountered in the assembly statements which were generated by that source code line. If no errors need to be reported this field will contain a . if any of the statements generated were unbound. If none of these conditions prevailed this field will be blank to indicate no trouble. aâ‚ ¬? The line field acts normally and shows the source text line number. aâ‚ ¬? The location field shows the location counter of the first instruction or pseudo- op in the macro expansion which generated any code. In other words, it reflects the start of the macro if anything useful happens. aâ‚ ¬? The assembled_code field shows the contents of the first operation in the macro expansion which placed anything in this field. It doesnt append the code generated by later instructions in the macro if the field isnt full yet. aâ‚ ¬? The source_code field acts normally and shows the original source text of the macro call. 17 Transputer Toolset TASM Transputer Assembler Operational Statistics Assuming no errors were encountered, TASM adds some operational information to the listing following the source code (this information is also written to standard output if you havent disabled verbose output mode). The information written consists of the number of external symbols which were defined or referenced, the number of local symbols which were defined, and the number of local symbols which were exported in the relocatable output file for eventual binding by TLNK. The percentage of TASMs symbol table capacity which was used is also indicated. Note, within TASM, both local and external symbols use the same symbol table. The last item on the listing (or standard output), is a count of the total errors encountered. This is a useful addition to the line-by-line error indications since multi- line macro expansion sometimes generates more than the one error which can be flagged on a given source line. Using the Preprocessor with TASM Using the preprocessor (PP), with TASM greatly improves the ease of programming, and the resulting readablity, of assembly language programs. If TASM is being used as a post-pass to the TCX C compiler, PP is not required (the C compiler handles those sorts of details with the help of PP itself). Assuming you are programming directly in assembly language, PP used with TASM offers the following improvements over using TASM by itself: aâ‚ ¬? Macro processing. PP allows both simple text replacement and powerful multi- line parameterized macros. Workspace offsets, symbolically defined configuration values, etc. , are all good uses for this facility. The fancy parameterized macros are nice for creating in-line code, and PP has facilities for generating unique symbols which can be used to allow local labels and symbols within macro body expansions. aâ‚ ¬? Include files. PP allows nested include files to be used. This is useful when a set of configuration parameters is being shared by all the files in a program, but you only want to have one set of definitions. aâ‚ ¬? Conditional Assembly. Using PP allows you to do C style conditional assembly. This is useful when you wish to have two or more versions of a program share the same source text (and thus get updated together). aâ‚ ¬? C style comments. You may use C style comments in source code for TASM when you use PP (since it filters them out). To find more out about these facilities consult your C reference manual. You may also want to consult PP C PREPROCESSOR USER GUIDE for implementation- dependent information about PP. 18 TASM Transputer Assembler Transputer Toolset Notes on Using the Preprocessor The following example will preprocess and assemble a file named test. pal: tcc test. pal +a-l -c Note that the +a-l directive tells TCC to pass a -l directive to TASM telling it to generate a test. lst assembly language listing file. The -c flag tells TCC that linking will not be necessary. The relocatable output file will be written on test. rl. A few notes should be mentioned about using PP with TASM: 1. If you are having trouble, or are unsure where a problem lies, check the output file written by PP to see what TASM is really getting as input. This is necessary since TASM shows the original source text on the assembly listing, not what it actually read as processed by PP. This is particularly useful in debugging macros, since the assembly listing only shows the macro call, not the subsequent expansion. 2. Within macros you should be careful about using ; assembly language comments. Remember that these comments are NOT comments to PP and it will pass them on through to TASM. A place where this crops up is when you define a symbol to have some value in a #define macro and follow it with a ; comment in the source text. The result is that anything you place in the operand field AFTER the spot where the macro replacement is done, gets commented out! As a general rule you should use C style comments for anything involving macros. 19 Transputer Toolset TASM Transputer Assembler Appendix A: Error Messages Types of Error Messages There are three classes of error messages which TASM can generate: aâ‚ ¬? Warnings. These are used to report problems which arent severe enough to cause TASM to abort (exit with a non-zero return value). These messages usually indicate trouble which isnt immediate, but may be soon! The format for warnings is: WARNING: message_text aâ‚ ¬? Non-fatal errors. These are used for reporting actual error conditions which will affect the return value given when TASM exits. If one or more non-fatal errors are encountered TASM will return a non-zero return code, otherwise it will give a return code of zero. Another result of encountering non-fatal errors is that the generation of a relocatable output file is inhibited (although if a assembly listing was requested it will be generated). The format for non-fatal errors is: filename @ line_number: message_text Where the filename field indicates the current source code file being read, the line_number field gives the line where the problem was detected, and the message_text field indicates the actual problem encountered. Note that non-fatal errors are also displayed on the listing (see the Assembly Language Listing Format section for a description of the format). â‚ ¬? Fatal errors. If the problem detected by TASM is so severe that it cant continue operating, it will give a fatal error message: FATAL: message_text After printing one of these messages, TASM will immediately exit with its error return code set (non-zero). 20 TASM Transputer Assembler Transputer Toolset Error Message Descriptions The following descriptions list the various error messages which TASM can generate (in alphabetic order): lt;filename @ line_number: Duplicate symbol definition: symbol_name The named symbol was either defined more than once, or defined once and mentioned in a . ext pseudo-op. filename @ line_number: Expression field error This error is generated whenever an illegal expression is present in the operand field of a opcode or pseudo-op. A few of the possible causes: aâ‚ ¬? Having an expression field which is not representable in 16 bits when assembling for a 16 bit processor. aâ‚ ¬? Using anything other than a string or a constant expression with a . db pseudo-op. If you want to reference an address you need to use a . dw instead. aâ‚ ¬? Using a relative reference within a . dw pseudo-op. Only constant expressions or address references are allowed there. aâ‚ ¬? Using a module number which is outside the range of 0 to 255 which is allowed for . mod declarations. FATAL: Corrupted temp file: filename This error usually occurs when the contents of a temporary file get corrupted by the file system somehow. If you have been changing TASM or recompiling it for another system, this error message indicates that the type field in one of the internal temporary file records was not one of the allowed types. This generally happens when you make a change to one of the places which adds or removes temporary file records without changing all the other occurences (you will generally need to make changes to files tasm2. c, tasm4. c, and tasm5. c together). 21 Transputer Toolset TASM Transputer Assembler FATAL: Error reading input file: filename TASM got an error return during one of its read operations on input file filename. This usually indicates trouble with whatever mass storage device is being used, and/or a corrupted input file. If the preprocessor (PP), was used to prepare the input source file AND a listing is being requested, this error could indicate problems have cropped up in one of the source files between the time PP originally read it, and when TASM re-reads it to generate the assembly listing. FATAL: Error reading temp file: filename TASM got an error return during one of its read operations on temporary file filename. This usually indicates trouble with whatever mass storage device is being used. FATAL: Error setting stream buffer for file: filename This error results when TASM is compiled with a non-zero IOBUFSIZE in file taldef. h but is unable to explicitly set the temporary file I/O buffer using setvbuf during execution. The return code from the setvbuf call is what actually triggers this error. As a workaround you can set IOBUFSIZE to 0 and recompile TASM, or you can figure out what is wrong with your C library. The file listed is the temporary file to which TASM was attempting to attach the buffer. FATAL: Error writing listing file: filename At some point TASM was unable to write to the named listing file. This generally occurs because of insufficient file space. FATAL: Error writing output file: filename TASM detected an error while it was writing the relocatable output file. This error generally occurs when insufficient disk space is available for the output file, as well as the temporary files which also exist during this period. FATAL: Error writing temp file: filename At some point TASM was unable to write to the named temporary file. This generally occurs because of insufficient space on whatever device the temporary files are being written on (either the TMP directory, the current directory, or a special fast one selected via the command line). 2 TASM Transputer Assembler Transputer Toolset FATAL: Insufficient stream buffer memory for file: filename If the value of IOBUFSIZE in taldef. h is non-zero, TASM will explicitly allocate temporary file I/O buffers (via malloc calls). If the memory cant be obtained for one of these buffers, this error message results. The filename listed is the one for which the buffer was intended. To get around this problem you should try to increas e the amount of available C heap memory. If you are using TASM on a PC, get rid of any unnecessary memory resident programs. As a last ditch effort you can reduce the value of IOBUFSIZE and recompile TASM, but TASM execution speed will suffer noticeably. FATAL: Insufficient symbol table string memory TASM was unable to obtain (via malloc calls), enough memory to hold all of the symbols and labels used in the input file. The obvious solution is to reduce the number and length of the symbols in the input file. If you are using TASM on a PC you should try eliminating unnecessary memory resident programs as a first step in getting more memory. FATAL: Line too long in input file: filename TASM read an input line which was longer than 300 bytes (as the release version is configured). This error is generally the result of self-recursive macro expansion by the preprocessor (PP), or the use of a filter program on the input source file which removed the end-of-line markers. FATAL: Output file name same as input You have the same filename specified for both input and output. Remember that the default output filename extension is . trl. FATAL: Symbol table full As configured in the release version, the symbol table can hold 4096 entries. This value may be increased if TASM is being run on a machine with a larger than 64K byte direct addressing range. Note that the symbol table size must be a power of two to make the hashing function work. If you cant increase the symbol table size you will have to break the input file up into separate pieces. 23 Transputer Toolset TASM Transputer Assembler FATAL: TASM internal error #XXX These errors should never occur! If one does it generally indicates a violation of one or more prefix optimization constraints. If this error message does occur, please send a machine-readable copy of the offending TASM input file together with a description of what command line switches were used to either Logical Systems or the dealer where you purchased the product. Be sure to indicate what operating system TASM was running under and the complete text of the resulting error message (plus any other information you feel is pertinent). As a workaround, you can try adding, deleting or moving around bits of code in your program to see if you can avoid the exact sequence of optimization steps which provoked the problem. FATAL: The size of SLONG is not correctly configured This error message can only appear when you are recompiling TASM. It indicates that the typedef for SLONG which appears in taldef. is set for a storage class which is less than 4 bytes long. The SLONG storage class MUST be signed for TASM to operate correctly. FATAL: Unable to close input file: filename You can only get this error message when you ask TASM to generate a listing file. It indicates that TASM was unable to close the named file during the process of re- reading whatever source files actually made up the input source file TASM read (assuming the preprocessor was involv ed), and generating the resulting listing. - FATAL: Unable to generate non-assembly language listing This error is reported whenever both the -l and -t switches are given. You can only use one of these switches at a time. FATAL: Unable to open input file: filename The open attempt for the input filename failed. Verify that the input file exists and that the filename extension is correct (remember that . tal is the default if none is specified). If the preprocessor (PP), is being used with TASM, AND an assembly listing has been requested, this error message can also be generated. This occurs if one of the source files which PP used to create the input file for TASM was no longer there when TASM tried to re-read it to generate the listing. You can tell which of these two cases is the problem by noticing which input filename is mentioned in the error message. 24 TASM Transputer Assembler Transputer Toolset FATAL: Unable to open listing file: filename TASM was unable to open the listing filename. The filename is created by taking the filename from the input file (and input file pathname), and appending the extension . lst in place of any extension the input file had. FATAL: Unable to open output file: filename TASM was unable to open the output filename. This filename is either the default one generated using the input filename with a new extension (. trl), or it was explicitly specified by you using a -o option flag. FATAL: Unable to open temporary file: filename The open attempt for the temporary filename failed. This filename includes whatever directory pathname was specified for temporary files. FATAL: Unexpected EOF in input file: filename This error is encountered when a listing is being generated and TASM is reading the various source files which the preprocessor (PP), used to create the input file. This error indicates that TASM found one of the input files was shorter than PP lead it to believe with information passed via #line statements. This error may also be generated without the help of PP, if the input source file has somehow gotten corrupted between the time TASM read the input code from it and when it was re-read to generate the listing file. filename @ line_number: Floating point constant error This error message is generated for floating point constants used with either . real32 or . real64 which are out of range of the particular IEEE format selected. This usually means an error in a mantissa or exponent field. - filename @ line_number: Not implemented (pseudo-op) This error message is generated for opcodes or pseudo-ops which are not yet implemented, but whose names have been reserved. 25 Transputer Toolset TASM Transputer Assembler ;filename; @ line_number: Opcode/pseudo-op unknown: opcode_name The named opcode appeared in the opcode field of an instruction but was not recognized by TASM. This is generally caused by not declaring what type of processor TASM is assembling for (. T414, etc. ), or using an instruction which is not valid with the selected processor type. WARNING: Unable to close output file: filename During the cleanup process TASM removes the output file it creates if any errors were detected during operation. This error message indicates that TASM was unable to close the output file. Causes include the normal spectrum of file system related maladies. WARNING: Unable to close temp file: filename During the cleanup process, prior to TASM terminating, the temporary files are closed and deleted. This message indicates that TASM was unable to close the named temporary file (something is probably happening to the file system). WARNING: Unable to remove output file: filename During the cleanup process TASM removes the output file it creates if any errors were detected during operation. This error message indicates that TASM was unable to delete the output file. Causes include the normal spectrum of file system related maladies. WARNING: Unable to remove temp file: filename During the cleanup process, prior to TASM terminating, the temporary files are closed and deleted. This message indicates that TASM was unable to remove the named temporary file (something is probably happening to the file system). filename @ line_number: Undefined symbol: symbol_name This error message is generated when the named symbol is referenced but not defined within the input file (either by a label or . ext pseudo-op). 26 TASM Transputer Assembler Transputer Toolset Appendix B: Transputer Instruction Set The following descriptions of the Transputer instruction set are only intended for purposes of illustrating which instructions TASM can assemble. Please consult the appropriate INMOS documentation for information about instruction set formats and the internal architecture of the various CPUs. Direct Functions There are 16 direct functions, executed by all the INMOS Transputers, which can have operands. They are (in alphabetic order): Instruction Hex Value CPU Description ADC 8 All Add constant AJW B All Adjust workspace CALL 9 All Call subroutine CJ A All Conditional jump EQC C All Equals constant J 0 All Jump LDC 4 All Load constant LDL 7 All Load local LDLP 1 All Load local pointer LDNL 3 All Load non-local LDNLP 5 All Load non-local pointer NFIX 6 All Negative prefix OPR F All Operate (meta instruction) PFIX 2 All Prefix STL D All Store local STNL E All Store non-local Indirect Functions The use of the OPR instruction, in conjunction with the operand register, allows a large number of indirect instructions which are built using prefix strings to OPR. The following instruction list shows the indirect instructions, sorted in alphabetic order. Since INMOS makes more than one type of Transputer, the list has a CPU column which indicates whether the particular instruction is supported by at least some members of both the 16 and 32 bit Transputer families (listed as 16/32), some non-16 bit (ie. 32 bit), processors (All), only by the 16 bit machines (T212/T222/T225, listed as T212), only by the non floating point 32 bitters (T400/T414/T425, listed as T414), or only by the floating point processors (T800/T801/T805, listed as T800). In addition, the floating point processors support a FPENTRY instruction which allows the current value in the A register to be used as an extended floating point operation code. TASM implements these extended operation codes as macro instructions which consist of a LDC with the appropriate extended code, followed by a 27 Transputer Toolset TASM Transputer Assembler FPENTRY. These instructions are listed as SEQ (INMOS terminology), in the CPU column and are only available on the T8 processors. 28 TASM Transputer Assembler Transputer Toolset Instruction Hex Value CPU Description ADD 05 16/32 Add ALT 43 16/32 Alt start ALTEND 45 16/32 Alt end ALTWT 44 16/32 Alt wait AND 46 16/32 Boolean AND BCNT 34 16/32 Byte count BITCNT 76 16/32 Count bits set in word BITREVNBITS 78 16/32 Reverse bottom N bits in word BITREVWORD 77 16/32 Reverse bits in word BREAK B1 16/32 Breakpoint BSUB 02 16/32 Byte subscript CCNT1 4D 16/32 Check count from 1 CFLERR 73 T414 Check real32 fp infinity or NAN CLRHALTERR 57 16/32 Clear halt-on-error CLRJ0BREAK B2 16/32 Clear breakpoint flag CRCBYTE 75 16/32 Calculate CRC on byte CRCWORD 74 16/32 Calculate CRC on word CSNGL 4C 16/32 Check single CSUB0 13 16/32 Check subscript from 0 CWORD 56 16/32 Check word DIFF 04 16/32 Difference DISC 2F 16/32 Disable channel DISS 30 16/32 Disable skip DIST 2E 16/32 Disable timer DIV 2C 16/32 Divide DUP 5A 16/32 Duplicate top of stack ENBC 48 16/32 Enable channel ENBS 49 16/32 Enable skip ENBT 47 16/32 Enable timer ENDP 03 16/32 End process FMUL 72 All Fractional multiply FPADD 87 T800 Floating point add FPB32TOR64 9A T800 Convert bit32 to real64 FPCHKERR 83 T800 Check floating error FPDIV 8C T800 Floating point divide FPDUP A3 T800 Floating point duplicate FPENTRY AB T800 Floating point unit entry FPEQ 95 T800 Floating point equality FPGT 94 T800 Floating point greater-than FPI32TOR32 96 T800 Convert int32 to real32 FPI32TOR64 98 T800 Convert int32 to real64 FPINT A1 T800 Round fp to floating integer FPLDNLADDDB A6 T800 Floating ld non-local and ad