STI College – Makati

SmartGlobe: Electronic Country Locator Using a Standard Globe

A Thesis Project Presented to the Faculty of STI College – Makati

In Partial Fulfillment of the Requirements for the Degree of Bachelor of Science in Computer Engineering

by: Benito, Reynaldo Jr. B Enjambre, Matthew D. Luchavez, Romel N. Mendoza, Glenn F.

Mr. Noel Jason M. Hernandez Thesis Adviser

March 2009

STI College – Makati

ADVISER’S RECOMMENDATION SHEET

This Thesis Project entitled

SmartGlobe: Electronic Country Locator Using a Standard Globe

by: Benito, Reynaldo Jr. B. Enjambre, Matthew D. Luchavez, Romel N. Mendoza, Glenn F.

Submitted in partial fulfillment of the requirements of the Bachelor of Science in Computer Engineering degree has been examined and is recommended for acceptance and approval

Mr. Noel Jason M. Hernandez Thesis Adviser

March 2009

STI College – Makati

PANEL’S APPROVAL SHEET

This Thesis Project entitled

SmartGlobe: Electronic Country Locator Using a Standard Globe

developed by: Benito, Reynaldo Jr. B. Enjambre, Matthew D. Luchavez, Romel N. Mendoza, Glenn F.

After having been presented is hereby approved by the following members of the panel

Mr. Riegie D. Tan Panelist

Engr. Antonio M. Lazona Panelist

Dr. Emmalyn Capuno Panelist

STI College – Makati

THESIS COORDINATOR AND DEAN’S ACCEPTANCE SHEET

This Thesis Project entitled

SmartGlobe: Electronic Country Locator Using a Standard Globe

After having been recommended and approved is hereby accepted by the Computer Engineering Department of STI College - Makati

Engr. Laura M. Altea Thesis Coordinator

Engr. Laura M. Altea Dean

March 2009

TABLE OF CONTENTS Page 1 INTRODUCTION 1.1 1.2 1.3 1.4 1.5 Statement of the Problem 1.1.1 General Problem 1.1.2 Specific Problems Current State of the Technology Objectives 1.3.1 General Objective 1.3.2 Specific Objectives Scope and Limitations Review of Related Studies 1.5.1 Foreign Studies 1.5.2 Local Studies 1-2 1-2 1-2 1-2 1-4 1-4 1-4 1-5 1-6 1-6 1-8

2

THEORETICAL FRAMEWORK 2.1 2.2 2.3 2.4 2.5 Introduction Gimbal Microcontroller Embedded Design Stepper Motor 2-1 2-1 2-2 2-3 2-5

3

SMARTGLOBE: ELECTRONIC COUNTRY LOCATOR USING A STANDARD GLOBE 3.1 3.2 Introduction System Design Specifications 3.2.1 Globe 3.2.2 Microcontroller Unit 3.2.3 LCD 3.2.4 Keypad 3.2.5 Stepper Motor 3.2.6 Storage Device 3.2.7 Prototype Design Summary 3-1 3-1 3-1 3-2 3-3 3-4 3-4 3-4 3-5 3-7

3.3 4

PERFORMANCE ANALYSIS 4.1 4.2 4.3 4.4 Introduction Experimental Results and Analysis Summary 4-1 4-1 4-3 4-4

5

CONCLUSION AND RECOMMENDATION 5.1 5.2 Conclusion Recommendation 5-1 5-1

Bibliography Appendices Resource Person Personal Vitae

LIST OF APPENDICES

Appendix A Appendix B Appendix C Appendix D Appendix E Appendix F Appendix G Appendix H

Project Schedule Glossary of Terms Transcript of Interviews Project Costing List of Country Codes Program Listing User’s Manual Sample Receipts

LIST OF FIGURES

Figure 3-1 Figure 3-2 Figure 3-3 Figure 3-4

Prototype Design Schematic Diagram of the System PCB Layout of the Main Board Block Diagram of the System

3-6 3-6 3-7 3-8

Acknowledgements First and foremost, the group would like to thank the almighty God, who has been the source of everything and with whom great things are possible. To Him all the glory is given for the achievement of this project. To the adviser, Mr. Noel Jason M. Hernandez, for his invaluable support, encouragement, supervision and useful suggestions throughout this research work. His support and continuous guidance enabled the successful completion of the project. The proponents were also highly thankful to the faculty of IT department: Ms. Araceli Taisa, Mr. Antonio Lazona, Mr. Riegie Tan, Mr. Ruel Viera, and Mr. Joel Jimenez, for their valuable suggestions throughout this study. To the project design coordinator, Engr. Laura Altea, who guided and directed the project from the beginning, for the empowerment to strive for excellence in everything. Moreover, sincere thanks go to fellow colleagues of Engineering Batch 2008-2009, who shared their love and experiences. And lastly to the groups’ each loving parents, for their love and support throughout our lives, thank you so much.

Abstract It is important for the students and educators, to implement adequate procedures when searching countries using the globe. Reference books indicate the coordinates needed in order for the user to locate for the right longitudes and latitudes. Although there have been PC-based programs like the online Google Earth, that enhances the globe's functionality, there would be another considerations that takes place when running the program. The SmartGlobe was designed and developed to expedite the searching of the country in a standard globe. The use of a microcontroller was introduced in the making process of the thesis project. Direct interfacing procedure was researched and practiced, and different input and output devices were used for the realization and, mainly construction of the project. The proponents consider the SmartGlobe as one of the best contributions to educational technology ever invented. Making a globe that will, indeed, spin to any country you want, eliminates the need of randomly rotating the globe in the hope of locating an unfamiliar country. The result is a system that is both educational and mildly amusing.

1.0

INTRODUCTION Origination in the 1490's, the world globe has been a fixture in society ever since. Today's world globes have been perfected for accurate scientific and scholastic use. World globes are no longer limited merely to scientific and scholastic circles. In recent years many people have begun to integrate world globes into their homes as a stylish accent to its overall décor. There is a huge variety of both traditional and contemporary world globes available today. Student, fine art, gemstone, scientific, interactive, and illuminated world globes are available in tabletop styles and stand-alone models. For years since the actual globe is made, professionals, scientists, and students rely on locating countries based on latitudes and longitudes, since it is wide in terms of geographical settings, it is much complicated to those who were unfamiliar or who do not have any knowledge in locating countries with the use of coordinate that are tiring and confusing. One of the basic uses of the globe is to find places cities, nations, land areas and water areas. Just as easy as finding the busiest street corner in your home town. Finding a place is not enough unless seeing it in its true geographical relationship to the rest of the world or seeing those countries which are its neighbors and the true distances and directions between them [ANON2006].

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-1

1.1

Statement of the Problem

1.1.1

General Problem  How to design and develop a Microcontroller Unit (MCU) Based Electronic Globe Country locator that will expedite the searching of country?

1.1.2

Specific Problems  How to design and construct a circuit that would allow the user to input code of the country to be located?  How to make the globe automatically rotate and pinpoint a particular country?  How to present additional information about the located country?

1.2

Current State of the Technology Modern world globes now come in a numerous of styles are constructed out of many beautiful materials. Most modern globes are imprinted with parallels and meridians where a specific point on the surface of the planet is located. All lines running east and west, parallel to the equator, are called latitude lines and the lines running north and south

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-2

from pole to pole are called longitude lines which are shown at 15° intervals [REPL2008]. When locating countries within the globe, knowing the prime meridian and the equator will be a good idea to start your search. Knowing the right coordinates of the country will give the exact location. Another method is by knowing the neighboring countries, familiarity within the area, and the geographical setting is also a good reference when searching. Same applies to the continents. For example, Kuwait is a small country difficult to locate. Looking for neighboring countries larger in size like Iran or Iraq is a way to look for the country. But relying to these methods is not applicable to some situations. City-state countries like on Middle East Asia and in some territories in Europe are difficult to find since their neighboring countries are relatively small. In some state, the Island Nations like Fiji, Tuvalu, and Tonga, are also hard to locate since the area is surrounded by large bodies of water like the Pacific Ocean. The approaches stated above explains the way in using the globe that demands enhancement, since different methods finding the right locations is not that reliable and requires some effort. In today's age of technology, people are now more than ever allowed the luxury of communicating with people from all over the world. Though technology brings us many things we all use and enjoy, some things simply cannot be replaced by a computer screen or pure data. To

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-3

many people, a world globe is among the items that simply cannot be outdated by new electronic technology. Satellite data collecting, imagery, and general computer data processing have all helped the globe and map industry immeasurably. These technologies allow globe makers to offer a much higher level of detail and accuracy than ever before. Still, there is just no replacement for a 3 dimensional model of our planet.

1.3

Objectives

1.3.1

General Objective  To design and develop a Microcontroller Unit (MCU) Based Electronic Globe Country locator that will expedite the searching of country.

1.3.2

Specific Objectives  To construct a numeric keypad that would allow the user to input the code of a country.  To construct a mechanism that would enable the globe to rotate and pinpoint a particular country.  To provide an output device that would display information about the located country.

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-4

1.4

Scope and Limitations

The project will cover the following:  The prototype will locate and pinpoint the corresponding country with the use of two stepper motors. One stepper motor would rotate the globe horizontally clockwise and counter-clockwise.  The prototype will display the current information of the country that is located using a four-line LCD. Information to be displayed includes the country name, coordinates, currency, and capital city.  The prototype will have an alphabetically arranged list of countries with its corresponding country code that would serve as an input to the keypad.  A globe measuring 12 inches in diameter will be used in the prototype. The whole unit, composed of the globe, stand, keypad and LCD, would measure 27 inches in height, with the base that measures 19.5 by 14 by 6.5 inches.  The information saved in the storage device can be modified within the prototype, using the keypad.  The prototype can be manually spun to preset on the default position in case of shut down or suddenly movement.

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-5

The project will not cover the following:  The prototype will not be able to locate specific locations inside a country besides the capital city.  The stepper motor to be used to rotate the globe has only 200 steps, limiting the accuracy of the device to 1.8 degrees per step when locating a particular country.  The prototype will not cover the changes in geographical settings or declaration of new countries since the program will be based on the standard globe at present time.

1.5

Review of Related Studies

1.5.1

Foreign Studies

Google Earth Google Earth is a proprietary virtual globe program that was originally called Earth Viewer, and was created by Keyhole, Inc, a company acquired by Google in 2004. It maps the earth by the superimposition of images obtained from satellite imagery, aerial photography and GIS 3D globe. Google Earth allows users to search for addresses for some countries, enter coordinates, or simply use the mouse to browse to a location. The product is currently available for use on personal computers running

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-6

Microsoft Windows 2000, XP, or Vista, Mac OS X 10.3.9 and above, Linux, and FreeBSD. Google Earth is also available as a browser plug-in for Firefox, IE6, or IE7. In addition to releasing an updated Keyhole based client, Google also added the imagery from the Earth database to their web based mapping software. The release of Google Earth in mid 2006 to the public caused a more than tenfold increase in media coverage on virtual globes between 2006 and 2007, driving public interest in geospatial technologies and applications. The concept of locating a country was the main idea that the group adapt from it. But which, the project will be mainly controlled by an MCU.

Eartha: World's Largest Rotating Globe Eartha is a 3-dimensional scale model of our earth with mountains and landforms in full 3D that rotates and revolves, simulating the earth’s real movements. It measures 41.5 ft in diameter. Unveiled July 23, 1998 Eartha took two years to build and represents earth as it is seen from space. Every aspect of Eartha was developed using computer technology. It was designed by David DeLorme, CEO and constructed by DeLorme staff members. The surface is composed of 792 panels printed from a

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-7

computerized database and incorporating shaded relief and depth info, roadways and cities. Eartha tilts at 23.5 degrees, just as the earth does. It revolves on a specially designed cantilever arm and rotates on an axis. This action is powered by two electric-powered motors, which are commanded by a computer. One combined Eartha revolution and rotation occurs every minute at maximum speed. The application of motors for the rotation of the Eartha globe is one of the similar approach that is used in moving the project. The only purpose of this electric powered motor device is for the rotation of the object and to show geographical features. Unlike the SmartGlobe, these stepper motors are used for locating countries.

1.5.2

Local Studies

Standard Globe These Globes came in different designs and variations, these made often made of plastics, cardboard, wood, and metallic materials. Other types are inflatable and often came in different size, some came with lightings to be viewable through the dark, though the features of its functionality are the same.

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-8

This standard-sized globe is the environment of the SmartGlobe, in which the implementation of the embedded systems will enhance the objects functions and capabilities.

SmartGlobe: Electronic Country Locator Using a Standard Globe

1-9

2.0

THEORETICAL FRAMEWORK

2.1

Introduction The theoretical framework serves as a starting point for investigation, as guidance for the first steps in the field. The theoretical background that leads to the design of the project serves as a background in the project development.

2.2

Gimbal A gimbal is a pivoted support that allows the rotation of an object about a single axis. A set of two gimbals, one mounted on the other with pivot axes orthogonal, may be used to allow an object mounted on the innermost gimbal to remain vertical regardless of the motion of its support. For example, gyroscopes, shipboard compasses, stoves and even drink holders typically use gimbals to keep them upright with respect to the horizon despite the ship's pitching and rolling. [SART1999]. A basic advantage is that it provides a means of aligning and inserting a gimbal drive and sensor assembly into position in which it couples two gimbals along a rotation axis. The present invention also provides a means of aligning and engaging and disengaging an electro-mechanical subassembly into a gimbal set or other system by means of a simple single manipulation device which also makes all necessary interconnections. [JACO1993]

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-1

The purpose of it was to set the globe to move on one axis giving access through the countries that could be found in the upper and lower part of the area. The upper and the lower threads attached to the gimbals are used to support the globe together with the stepper motor that is attached through the base (The motor set for the globe’s horizontal movement).

2.3

Microcontroller Microcontrollers generally can be classified into 8-bit, 16-bit, and 32-bit family based on the size of their arithmetic and index register(s). It generally consists of ROM (Read Only Memory), RAM(Random Access Memory), Stack Pointers, Registers, Accumulator, Input/Output Ports, Timers, Analog to Digital Converter(ADC), Digital to Analog Converter(DAC), UART or SPI (for communication purposes). Some have special built in features that comes with Liquid Crystal Display Driver (LCD) that will enable them to drive LCD displays, EEPROM (Electrical Eraseable Programmable Read Only Memory) which is a non volatile memory that will enable it to store data permanently. It can be implemented using high level language or assembly language. Clock speed determines how much processing can be accomplished in a given amount of time by the MCU. Some have a narrow clock speed range. Sometimes a specific clock frequency is chosen to generate another clock required in the system, e.g. for serial baud rates.

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-2

Generally the higher clock frequencies, the higher the system costs because not only does it cost more, but so do all the support chips required, such as RAM’s, ROM’s and bus drivers. The processing technology of microcontrollers is N-channel metaloxide semiconductor (NMOS) or high-density complementary metal-oxide semiconductor (HCMOS). In HCMOS, signals drive from rail-to-rail, unlike earlier NMOS processors. Since these criteria can significantly affect noise issues in system design, HCMOS uses less power and thus generates less heat. The design geometries in HCMOS are smaller, which permit denser designs for a given size and thus allow higher bus speeds. The denser designs also allow lower cost, for more units can be processed on the same sized silicon wafer. For these reasons, most MCUs today are produced using HCMOS technology. The entire system of this project is controlled with this device. The signals are sent through pulses for the globe’s movement, storage management, information displays and 16-digit keypad are all programmed and interfaced to the mcu.

2.4

Embedded Design An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-3

computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems control many of the common devices in use today. Since the embedded system is dedicated to specific tasks, design engineers can optimize it, reducing the size and cost of the product, or increasing the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale. Physically, embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems controlling nuclear power plants. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure. In general, "embedded system" is not an exactly defined term, as many systems have some element of programmability. For example, Handheld computers share some elements with embedded systems — such as the operating systems and microprocessors which power them — but are not truly embedded systems, because they allow different applications to be loaded and peripherals to be connected. The majority of computer systems in use today are embedded in other machinery, such as automobiles, telephones, appliances, and peripherals for computer systems. These are called embedded systems. While some embedded systems are very sophisticated, many have minimal

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-4

requirements for memory and program length, with no operating system, and low software complexity. Typical input and output devices include switches, relays, solenoids, LEDs, small or custom LCD displays, radio frequency devices, and sensors for data such as temperature, humidity, light level etc. Embedded systems usually have no keyboard, screen, disks, printers, or other recognizable I/O devices of a personal computer, and may lack human interaction devices of any kind. [BARR2008] The use of MCU’s are considered to be an approach in implementing embedded systems, which ensures reliability measures that can optimize the SmartGlobe’s features. This can eliminate some certain tasks like redundant measures such as using a software applications or operating system, compatibility concerns, and cost issues. It could also minimize exposure to adverse environmental conditions.

2.5

Stepper Motor Stepper motors are widely used in applications in which an accurate positioning of an output shaft is to be provided, their advantage being that the output can be moved to any desired position from a known starting position simply by generating an appropriate number of pulses to drive the shaft incrementally. Stepper motors can thus be operated in an open loop configuration and so there can be a great cost advantage over servo-systems since neither a positional sensor nor feedback control system is required.

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-5

The precise mechanical constructions of stepper motors are many and various, but generally a multiple pole motor together with a multiphase stator winding is employed. The greater the number of poles and phases, the greater the resolution in the positional increment may be achieved. Multi-phase motors are also capable of high power. Whatever the construction, a stepper motor controller is required to generate, from an applied input pulse, appropriate currents to the motor windings to make the axis of the air gap field step around in coincidence with the input pulse. [BURR1993] The accuracy features of the stepper motors are considered to be an important part of pinpointing several countries in the SmartGlobe concerning the small land area, or the ones that are hard to locate. There are two stepper motors. The one is set through the base for the horizontal movement, and the other is positioned to the right side to move the globe vertically.

SmartGlobe: Electronic Country Locator Using a Standard Globe

2-6

3.0

SMARTGLOBE: ELECTRONIC COUNTRY LOCATOR USING A STANDARD GLOBE

3.1

Introduction Locating Countries and navigating through coordinates take much time. Even, familiarity through geography is not that accurate enough to view these, since there are small countries not friendly to view. Sometimes annoying gridlines would make countries hard to locate. These will be the measures in order for the project to give ease, giving a nice output.

3.2

System Design Specifications

3.2.1

Globe A 12-inch (30cm) globe weighting 2.2 lbs (1kg) is used. The lightweight, durable globe sits in a scratch resistant, smoke black base. Countries are colored to contrast with neighboring countries and states. It has latitude lines in 15 degree increments from the equator and longitude lines with 15 degree increments from the prime meridian. The prime meridian is the line from pole to pole, running through Greenwich, England, and serves as the start point for all longitude lines.

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-1

3.2.2

Microcontroller Unit The microcontroller used to control the device is the PIC18F458. It is a RISC CPU with the following specifications and capabilities:
       

Operating speed: up to 40 MHz, Up to 10 MIPS Operating voltage: 4.2-5.5V Industrial temperature range (-40° to +85°C) Linear program memory addressing up to 2 Mbytes Linear data memory addressing up to 4 Kbytes 4-10 MHz oscillator/clock input with PLL active 16-bit wide instructions, 8-bit wide data path 75 instructions

Special Microcontroller Features
   

Flash Memory: 32 Kbytes (16,384 words) Data SRAM: 1536 bytes Data EEPROM: 256 bytes In-Circuit Serial Programming via two pins The Microcontroller was used to interface with the input

device in then form of the keypad, as well as the output device in the form of the LCD screen. It is also used to control the movement of the two stepper motors used to move the globe.

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-2

3.2.3

LCD The LCD controller is HD44780 (standard Hitachi interface) compatible and has 4 lines of 20 characters each. The HD44780U dot-matrix liquid crystal display controller and driver LSI displays alphanumeric, Japanese kana characters, and symbols. It can be configured to drive a dot-matrix liquid crystal display under the control of a 4- or 8-bit microprocessor. Since all the functions such as display RAM, character generator, and liquid crystal driver, required for driving a dot-matrix liquid crystal display are internally provided on one chip, a minimal system can be interfaced with this controller/driver. A single HD44780U can display up to one 8-character line or two 8character lines. The HD44780U has pin function compatibility with the HD44780S which allows the user to easily replace an LCD-II with an HD44780U. The HD44780U character generator ROM is extended to generate 208 5 ´ 8 dot character fonts and 32 5 ´ 10 dot character fonts for a total of 240 different character fonts. The low power supply (2.7V to 5.5V) of the HD44780U is suitable for any portable battery-driven product requiring low power dissipation. The device will serve as an output in navigating countries through the use of country code as the user’s input. It also displays

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-3

information such as the country name, coordinates, capital, and currency during the operation.

3.2.4

Keypad These will function as the user’s input in the process of locating desired country. It also serves as a tool for updating profiles of the country and modifications by simply adding and removing databases. The mikroBasic compiler provides a hardware interface and code to this module.

3.2.5

Stepper Motor The researchers used a bipolar 2-phase stepper motor, having 200 steps per revolution. During the operation, the two stepper motors are used to rotate the globe on two axes. The horizontal movement of the globe provided by the stepper motor which would translate to a 1.8 degree of accuracy when pinpointing the capital of a country (mapping of 200 steps to the globes 360 degrees).

3.2.6

Storage Device Country information will be stored using a 64 MB solid state drive in the form of the Multimedia Card (MMC). PIC

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-4

provides

SPI

features.

Serial

Peripheral

Interface

is

a

communication method that was once used to connect devices such as printers, cameras, scanners, etc. to a desktop computer. This function has largely been taken over by USB, however SPI can still be a useful communication tool for some applications. SPI runs as a master slave set-up and can run in full duplex mode, meaning that signals from the master to the slave and versa can be transferred at the same time. SPI involves four lines, and is therefore often termed the “four wire” serial bus. The four lines are: SCLK — Serial Clock (output from master) MOSI/SIMO — Master Output, Slave Input (output from master) MISO/SOMI — Master Input, Slave Output (output from slave) SS — Slave Select (active low; output from master) 3.2.7 Prototype Design The prototype was composed of a globe measuring 12 inches in diameter, stand, keypad and LCD (mounted at the base), and would all-in-all measure 27 inches in height, with a base that measures 19.5 by 14 by 6.5 inches.

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-5

Figure 3-1: Prototype Design The design calls for the use of a microcontroller to move two motors that would rotate the globe so that a country would face the user. The microcontroller would provide necessary I/O lines to interface to an alphanumeric keypad and a LCD.

Figure 3-2: Schematic Diagram of the System

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-6

The Layout of the circuit is designed through the Express PCB software. The saved project is then printed through the acetate and then use a presensitized PCB for the board tracing process, in which keeping the board in contact with extreme sunlight for 2 minutes, then placing the board in the developer solution until the traces are visible. Once transferred, the board is then submerged with the FeCl compound, producing an output ready for drilling and mounting the components.

Figure 3-3: PCB Layout of the Main Board

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-7

3.3

Summary All the ideas and concepts made to build the SmartGlobe are based through different approaches. These methods are carefully chosen and used to interface several ways. These can be manipulated and refined through the use of microcontroller unit.

Figure 3-4: Block Diagram of the System

SmartGlobe: Electronic Country Locator Using a Standard Globe

3-8

4.0

PERFORMANCE ANALYSIS

4.1

Introduction

In this chapter the proponents are to discuss the end results of the numerous experiments and theories that the group has done. Like what the group has proposed the main objective of this project is to be able to design and develop a Microcontroller Unit (MCU) Based Electronic Globe Country locator that will expedite the searching of country.

4.2

Experimental

Programming The toughest part in making this system to work is the creation of an algorithm when performing new search of a country after the other with the use of a compiler written in a basic language (software used in embedding codes through the microcontroller). Though the idea is so simple that after a country has been located, the next action is to locate a new one starting to the previous one as an origin. The experiment that the proponents had conducted was to know if saving a country’s current coordinates would allow the project to locate the country. The movement of the 2 motors should rotate the globe according to the programmed coordinates.

SmartGlobe: Electronic Country Locator Using a Standard Globe

4-1

Accuracy This phase concerns the proper alignment of the globe with the gimbals that holds it, in which the proponent’s objective is to make the country location more accurate. The experiment that had been conducted was to know if adding a counterweight or making a balancer to prototype will prevent the gimbals from freewheeling in its axis movement. The activity here is to get the actual weight of the gearbox and stepper motor (which is 58 grams) located through the base (the one that rotates the globe horizontally) in order to produce a proportional counterweight through that of the object. After the activity is done, proper wiring of the entire hardware must be carefully installed to avoid obstruction in running the system.

Hardware The stage focuses more on implementing the actual structure of the project, this includes the globe, gearbox, stand and the gimbals, proper wiring and ventilation. This is to test how the overall hardware implementation of the project works. The proponents subjected the prototype to a test run by trying to locate 10 countries in succession. All problems during the batch run will be analyzed so they can be properly addressed.

SmartGlobe: Electronic Country Locator Using a Standard Globe

4-2

Table 4.1: Table of Experiments Experiment # 1 2 Topics Review on Circuitry and Electronics Review on Programming Remarks This cover the basic and advance principles on electronics A review on different programming languages like Assembly Language, Visual Basic, and C Language. A study on the concepts of microcontrollers and it’s applications Among the commercial IC’s used today, proponents used PIC IC’s because of it’s flexibility and good features Study on circuit interfacing based on PIC Study on compiler’s based on PIC, commonly based on C, Basic, and Assembly Proponents prefer MicroBasic compiler based on Basic Language Includes the proper alignment, and preferred parts and design Study on the features and other capabilities on the software, and proper implementation Numerous revising and improvising are covered in this stage to finalized the project

3 4

Introduction on Embedded Systems and Microcontrollers Study on PIC Microchip IC

5 6 7 8 9

Circuit Interfacing based on PIC Microchip IC Study on different compilers for PIC Microchip IC Choosing the compiler needed to build the project Study on the mechanical structure of the project model In-depth study of the MicroBasic compiler software Project Refinement Process

10

SmartGlobe: Electronic Country Locator Using a Standard Globe

4-3

4.3

Results and Analysis

Programming After examining and debugging the code that would control the 2 motors. It is now possible to locate countries whose coordinates are stored in the system memory.

Accuracy Putting a counterweight helped reduce the risk of freewheeling of the globe’s gimbals. The gearbox is also consider the factor in adding more strength to hold the gimbals, and without the proper alignment of the globe installed, the system will not run as expected.

Hardware During the batch run, it was noted by the group that the project exhibited a slight trembling as the motor moves the globe along its axes. The problem was attributed to an unsteady base. The use of the angle bar as base material is enough to provide a steady stand to avoid trembling when running the system. The experiment was conducted to know if using an angle bar as a base will prevent the object from shaking. After the task is finished, proper alignment for accuracy must be implemented (see Accuracy). It was also observed that the ambient temperature inside the case is high due to the motor driver which gives off a considerable amount

SmartGlobe: Electronic Country Locator Using a Standard Globe

4-4

of heat. Proper ventilation with the use of fan must be installed to prevent the circuit for overheating. As for the project’s wiring, the proponents will provide flexible hose to hide and organize the wires. A box made of aluminum material to serve as a chassis for the gearbox, and acrylic material for the base’s frame. The use of flexible hose is good in hiding the wires to make the prototype more presentable.

4.4

Summary

The result and analysis shows that the SmartGlobe: Electronic Country Locator objectives has been covered well. The movement of the globe was stabilized with the introduction of the counterweight and the project was able to move the motor based on coordinates stored in memory.

SmartGlobe: Electronic Country Locator Using a Standard Globe

4-5

5.0

CONCLUSION AND RECOMMENDATION

Conclusion The proponents had developed SmartGlobe: Electronic Country Locator to help the user in locating and giving some information of the particular country that are located. The SmartGlobe eliminates the need of randomly rotating the globe in the hope of locating an unfamiliar country, so users can locate a country without the need to know its coordinates.

Recommendation For future enhancements, the proponents recommend to make use of a stronger stepper motor gear that would hold the globe so it would not slip down when it locates the country. Still, the improvement on the entire scope of the projects focuses on the accuracy. Using a faster motor can also be used to hasten the seek time when moving the globe to the correct axes. Powerful electromagnets can also be used to replace the gimbals making the globe levitate on its axes. For country information, aural presentation of country information with the use of built-in speakers can enhance the user experience.

SmartGlobe: Electronic Country Locator Using a Standard Globe

5-1

BIBLIOGRAPHY

World Wide Web: [ANON2006] [BARR2008] [JONE1995] [REPL2008] [WIKI2008] Anonymous (2006). ‘Seeing the the world on a globe’. http://www.myworldglobes.com/ Barr, Michael (2008). ‘Embedded Systems’ www.netrino.com/Embedded-Systems/Glossary Jones, Douglas W. (1995). ‘Control of Stepping Motor’ www.cs.uiowa.edu/~jones/step/types.html#bipolar Replogle Globes Inc. (2008). ‘How to use your Globe’ http://www.replogleglobes.com/ Wikipedia (2008). ‘Microcontroller’ http://en.wikipedia.org/wiki/microcontroller

Books: [BURR1993] Burri, Michel (1993). Stepper motor controllers Gd-Saconnex Inc. (Chicago, U.S.A)

[DWYE1994] Dwyer (1994) 4-10; Braun, Vision: TEST (Technologically Enriched Schools of Tomorrow), Final Report (Eugene, OR: International Society for Technology in Education, 1990) 7. [JACO1993] [SART1999] Jacobson, Peter E. (1993). Gimbal Module W. Marlette Drive, Phoenix, Arizona, 85019, US Sarton, George (1999). A History of Science: Hellenistic Science and Culture in the Last Three Centuries. Norton & Company Inc. (New York, U.S.A.), Ltd.

Appendix A: Project Schedule

Appendix A

A-1

Appendix A

A-2

Appendix A

A-3

Appendix B: Glossary of Terms

Glossary of Terms

1. Abridge - To make shorter; to shorten in duration; to lessen; to diminish; to curtail; as, to abridge labor; to abridge power or rights. 2. International Date Line (IDL) - is an imaginary line on the surface of the Earth opposite the Prime Meridian which offsets the date as one travels east or west across it 3. Latitude - usually denoted symbolically by the Greek letter phi, gives the location of a place on Earth north or south of the equator. Lines of Latitude are the horizontal lines shown running east-to-west on maps. 4. Longitude - is the north - south (Up to Down) geographic coordinate measurement most commonly used in cartography and global navigation. 5. Meridian - (or line of longitude) is an imaginary arc on the Earth's surface from the North Pole to the South Pole that connects all locations running along it with a given longitude. 6. Prime Meridian - is the meridian (line of longitude) at which longitude is defined to be 0°. 7. Equator - Runs East and West around the exact middle of the globe. ,

Appendix B

B-1

Appendix C: Transcript of Interviews

Theory on Gears, Approaches and method of construction Proponents: Reynaldo Benito Jr., Matthew Enjambre, Romel Luchavez, Glenn Mendoza Proponents: Do you provide some ready-made gears from the motors you sell here? Seller: Hmm… Not exactly because there are motors here that came with attached gears, most of these are surplus and only few are new kasi we only provide small stepper motors. But if you are knowledgeable, you can make your own set of gears or gearboxes. We provide some spare parts for gears Proponents: About these gears, ahh. Can there be some services you offer about constructing gearboxes? Seller: Uhmm, for now, we don’t provide services for that Proponents: Do you know a shop where they can customize, fabricate, construct gearboxes? Most of the ones we visited only provide fixed gears, and most of them are made for industrial works. Seller: Uhm, you could at least try those machine shops there in Caloocan, you can go through LRT. I think they fabricate gears. Proponents: Thanks. Hardware: Inquiries on Microprocessor/Microcontroller IC’s Proponents: What’s the difference between Zilog and PIC Microchip IC’s Seller: of course Zilog is a microprocessor chip, while the PIC micro IC’s are what they called microcontrollers. Proponents: How can you distinguish their differences? Seller: Since I’m just a seller, it depends on the number of pins, and the manufacturer of course. But I think Zilog IC’s are a bit cheaper than the PIC micro. But our technical staff may provide you some helpful information about these IC’s. (small conversation with the staff) Proponents: Sir, about those IC’s, can you tell use the differences? Technical Staff: Microprocessors are IC’s that can be found on pc’s, in order for them to function, they need a separate RAM and ROM, when interfacing, you need to construct a circuit for a specific device since all of these ports are based on I/O’s. These are contrary to the microcontrollers that have built-in features that microprocessors doesn’t have.

Appendix C

C-1

Appendix D: Project Costing

Table D.1: Project Design Costing Entry Planning Contract Labor: Alignment Acrylic Installation Paint Finish Tools & Equipment/s: PickIT Debug Express PIC Microchip IC’s Other Hardware Tools Internal Implementation Project Parts Capital Cost Implementation Cost Unit Hour/s Php Php Php Php Php Php Hour/s Php Php Php Cost/Time 3240 1800 100 100 3071.73 2903.76 n/a 1440 20184.49 30000 1600

Planning  Number of hours estimated to complete all planning activities  Includes time on outside and inside implementation Contract Labor  This entry is for all implementation costs for work provided by outside contractors  In this project, all implementation activities which include the alignment, welding, acrylic installation and paint finish totaled ___P 2,000____ Tools and Equipment  Tools needed to build the project in terms of software and hardware, this includes the PickIT Programmer bundled with Development Board for inCD Debugging, PIC IC’s 16f and 18f series, Compiler and Utility Software, and tools necessary for both experimentation and implementation Internal Implementation  Enter the number of hours estimated to complete all installation activities, programming, interfacing and gathering of resources Parts  This covers the total costs of parts needed in building the project

Capital Costs  Include all equipment and material purchased to complete the project.

Appendix D

D-1

Table D.2: Materials Costing Materials: PickIt2 Programmer PIC18F458 IC Stepper Motors L298a Motor Driver IC L297 Motor Driver IC Pre-sensitized PCB Assorted Resistors Assorted Capacitors Electrolytic Assorted Capacitors Ceramic 12-inch in Diameter Globe Kaynar Wires Solid Wires 1 Ampere Multi-tap Transformer 500 mA Multi-tap Transformer Assorted transistors PNP/ NPN Transistor Regulator (5V & 12V) Soldering Lead Alligator Clips LCD 4 x 20 lines Tact Switch Female Connectors (Asstd) Male Connectors (Asstd) Crystal Oscillator 4Mhz Diodes (Assorted) Buzzer Signal Laser Pointer Heat Sinks Soldering Paste Ferric Chloride Acrylic MMC 128 MB MMC Socket Steel Rod Bearings Flat bar Drill Bit No. of Units/Meters: 1 pc 3 pcs 4 pcs 6 pcs 6 pcs 6 pcs 4 packs 50 pcs 25 pcs 1 pc. 20 bundles 15 meters 2 pcs 1 pc. 30 pcs 10 pcs 20 meters 2 packs 1 pcs 16 pcs 10 pcs 15 pcs 2 pcs 50 pcs 2 pcs 1 pc 5 pcs 1 pc 3 packs (powder) 15 x 20 meters 1 pc 1 pc 1pc 4 pcs 1 pc 1 pc Unit Price: 2300 789 150 187.25 189.75 190 15 4 4 3200 10 10 120 80 15 13 10 56 1780 8.50 15 13 17 2.50 60 250 20 30 20 600 700 350 395 90 360 90 Price: 3071.73 2153.76 600 1123.50 1138.50 1140 60 200 100 3200 200 150 240 80 450 130 200 112 1780 136 150 195 34 125 120 250 100 30 60 600 700 350 395 360 360 90

Total: P 20,184.49

Appendix D

D-2

Benefits       Additional mode of topic presentation for subjects that deals with geographical locations. Reduced preparation time for educators. Reduced material costs for preparation of visual aids. Teachers are provided with an effective tool to integrate technology into their curriculum and use technology in ways that enhance instructional opportunities and successes for all students. Learning process in the classroom can become significantly richer as students have access to new and different types of information which they can directly manipulate. Learning becomes a hands-on experience. The use of technology in the classroom can improve students' motivation and attitudes about themselves and about learning. Technology-rich classes report higher attendance and lower dropout rates than traditional classes [DWYE1994]. Students are found to be challenged, engaged, and more independent when using technology. Technology helps teachers improve their classroom practice by expanding their opportunities for training students.

Appendix D

D-3

Appendix E: List of Country Codes

Name of Country Afghanistan Albania Algeria Andorra Angola Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bhutan Bolivia Bosnia and Herzegovina Botswana Brazil Brunei Darussalam Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Central African Republic Chad Chile China Colombia Comoros Congo Costa Rica Côte d'Ivoire Croatia Cuba Cyprus Czech Republic

Country Code 0004 0008 0012 0020 0024 0028 0032 0051 0533 0036 0040 0031 0044 0048 0050 0052 0112 0056 0084 0204 0064 0068 0070 0072 0076 0096 0100 0854 0108 0116 0120 0124 0132 0140 0148 0152 0156 0170 0174 0180 0188 0384 0191 0192 0196 0203

Appendix E

E-1

Name of Country Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Fiji Finland France Gabon Gambia Georgia Germany Ghana Greece Grenada Guatemala Guinea Guinea-Bissau Guyana Haiti Holy See (Vatican City State) Honduras Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jordan Kazakhstan Kenya Kiribati North Korea South Korea Kuwait

Country Code 0208 0262 0212 0214 0218 0818 0222 0226 0232 0233 0231 0242 0246 0250 0266 0270 0268 0276 0288 0300 0308 0320 0324 0624 0328 0332 0336 0340 0348 0352 0356 0360 0364 0368 0372 0376 0380 0388 0392 0400 0398 0404 0296 0408 0410 0414

Appendix E

E-2

Name of Country Kyrgyzstan Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Mauritania Mauritius Mexico Moldova Monaco Mongolia Montenegro Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands New Zealand Nicaragua Niger Nigeria Norway Oman Pakistan Panama Papua New Guinea Paraguay Peru Philippines Poland Portugal Qatar

Country Code 0417 0428 0422 0426 0430 0434 0438 0440 0442 0807 0450 0454 0458 0462 0466 0470 0584 0478 0480 0484 0498 0492 0496 0499 0504 0508 0104 0516 0520 0524 0528 0554 0558 0562 0566 0578 0512 0586 0591 0598 0600 0604 0608 0616 0620 0634

Appendix E

E-3

Name of Country Romania Russia Rwanda Saint Kitts and Nevis Saint Lucia Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa Spain Sri Lanka Sudan Suriname Swaziland Sweden Switzerland Syria Tajikistan Tanzania Thailand Timor-Leste Togo Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Tuvalu Uganda Ukraine United Arab Emirates United Kingdom United States Uruguay Uzbekistan

Country Code 0642 0643 0646 0659 0662 0670 0882 0674 0678 0682 0686 0688 0690 0694 0702 0703 0705 0090 0706 0710 0724 0144 0736 0740 0748 0752 0756 0760 0762 0834 0764 0626 0768 0776 0780 0788 0792 0795 0798 0800 0804 0784 0826 0840 0858 0860

Appendix E

E-4

Name of Country Vanuatu Venezuela Viet Nam Yemen Zambia Zimbabwe

Country Code 0548 0862 0704 0887 0894 0716

Appendix E

E-5

Appendix F: Program Listing

; ADDRESS OPCODE ASM ; ---------------------------------------------$0000 $EF04 F000 GOTO _main $490A $ _delay_1us: ;Delays.pbas,13 :: Delay_1us ;Delays.pbas,15 :: $490A $0000 $490C $ Delays_L_2: $490C $0012 RETURN $481C $ _delay_5500us: ;Delays.pbas,43 :: Delay_5500us ;Delays.pbas,45 :: $481C $0E08 MOVLW 8 $481E $6E0B MOVWF STACK_11, 0 $4820 $0EFF MOVLW 255 $4822 $6E0A MOVWF STACK_10, 0 $4824 $2E0B DECFSZ STACK_11, F, 0 $4826 $D001 $+2 $4828 $D003 $+4 $482A $2E0A DECFSZ STACK_10, F, 0 $482C $D7FE $-1 $482E $D7FA $-5 $4830 $0E1E MOVLW 30 $4832 $6E0A MOVWF STACK_10, 0 $4834 $2E0A DECFSZ STACK_10, F, 0 $4836 $D7FE $-1 $4838 $ Delays_L_8: $4838 $0012 RETURN $48D6 $ _delay_50us: ;Delays.pbas,28 :: Delay_50us ;Delays.pbas,30 :: $48D6 $0E10 MOVLW 16 $48D8 $6E0A MOVWF STACK_10, 0 $48DA $2E0A DECFSZ STACK_10, F, 0 $48DC $D7FE $-1 $48DE $0000 $48E0 $ Delays_L_5: $48E0 $0012 RETURN $4858 $ _setfun32: $4858 $0100 MOVLB 0

sub procedure Delay_us(1) NOP

sub procedure Delay_us(5500)

BRA BRA

BRA BRA

BRA

sub procedure Delay_us(50)

BRA NOP

;math_double.ppas,152 :: ;math_double.ppas,160 :: $485A $840B STACK_11, FUN, 0 ;math_double.ppas,161 :: $485C $AE0B BTFSS STACK_11, SAT, 0 ;math_double.ppas,163 :: $485E $EF38 F024 GOTO SETFUN32EEE ;math_double.ppas,164 :: $4862 $0E01 MOVLW 0X01 ;math_double.ppas,165 :: $4864 $6E03 MOVWF STACK_3, 0 ;math_double.ppas,166 :: $4866 $6A02 STACK_2, 0 ;math_double.ppas,167 :: $4868 $6A01 STACK_1, 0 ;math_double.ppas,168 :: $486A $6A00 STACK_0, 0 ;math_double.ppas,169 :: $486C $360A STACK_10, F, 0 ;math_double.ppas,170 :: $486E $3202 STACK_2, F, 0 ;math_double.ppas,171 :: $4870 $ SETFUN32EEE: ;math_double.ppas,172 :: $4870 $0EFF MOVLW 0XFF ;math_double.ppas,173 :: $4872 $ math_double_L_4: ;math_double.ppas,174 :: $4872 $0012 RETURN $4900 $ _fixsign32: $4900 $0100 MOVLB 0 ;math_double.ppas,123 :: ;math_double.ppas,127 :: $4902 $AE0A BTFSS STACK_10, 7, 0 ;math_double.ppas,128 :: $4904 $9E02 STACK_2, 7, 0 ;math_double.ppas,129 :: $4906 $0E00 MOVLW 0 ;math_double.ppas,130 :: $4908 $ math_double_L_2: ;math_double.ppas,131 :: $4908 $0012 RETURN $4874 $ _setfov32: $4874 $0100 MOVLB 0 ;math_double.ppas,86 :: ;math_double.ppas,94 :: $4876 $820B STACK_11, FOV, 0

BSF

CLRF CLRF CLRF RLCF RRCF

BCF

BSF

Appendix F

F-1

;math_double.ppas,95 :: $4878 $AE0B BTFSS STACK_11, SAT, 0 ;math_double.ppas,97 :: $487A $EF45 F024 GOTO SETFOV32EEE ;math_double.ppas,98 :: $487E $6803 STACK_3, 0 ;math_double.ppas,99 :: $4880 $6802 STACK_2, 0 ;math_double.ppas,100 :: $4882 $6801 STACK_1, 0 ;math_double.ppas,101 :: $4884 $6800 STACK_0, 0 ;math_double.ppas,102 :: $4886 $360A STACK_10, F, 0 ;math_double.ppas,103 :: $4888 $3202 STACK_2, F, 0 ;math_double.ppas,104 :: $488A $ SETFOV32EEE: ;math_double.ppas,105 :: $488A $0EFF MOVLW 0XFF ;math_double.ppas,106 :: $488C $ math_double_L_0: ;math_double.ppas,107 :: $488C $0012 RETURN $48B6 $ _res032: $48B6 $0100 MOVLB 0 ;math_double.ppas,135 :: ;math_double.ppas,141 :: $48B8 $6A02 STACK_2, 0 ;math_double.ppas,142 :: $48BA $6A01 STACK_1, 0 ;math_double.ppas,143 :: $48BC $6A00 STACK_0, 0 ;math_double.ppas,144 :: $48BE $6A08 STACK_8, 0 ;math_double.ppas,145 :: $48C0 $6A03 STACK_3, 0 ;math_double.ppas,146 :: $48C2 $0E00 MOVLW 0 ;math_double.ppas,147 :: $48C4 $ math_double_L_3: ;math_double.ppas,148 :: $48C4 $0012 RETURN $352A $ _lcd_cmd: ;Lcd.ppas,17 :: ;Lcd.ppas,18 :: $352A $0EFF MOVLW 255

SETF SETF SETF SETF RLCF RRCF

CLRF CLRF CLRF CLRF CLRF

$1415 ANDWF lcd_dataport_address, 0, 0 $352E $6EE9 MOVWF FSR0L, 0 ;Lcd.ppas,19 :: $3530 $C016 F000 MOVFF lcd_dataport_address+1, STACK_0 $3534 $C000 FFEA MOVFF STACK_0, FSR0H ;Lcd.ppas,20 :: $3538 $0EFF MOVLW 255 $353A $1417 ANDWF lcd_ctrlport_address, 0, 0 $353C $6EE1 MOVWF FSR1L, 0 ;Lcd.ppas,21 :: $353E $C018 F000 MOVFF lcd_ctrlport_address+1, STACK_0 $3542 $C000 FFE2 MOVFF STACK_0, FSR1H ;Lcd.ppas,23 :: $3546 $1C19 COMF lcd____menable, 0, 0 $3548 $6E00 MOVWF STACK_0, 0 $354A $5000 MOVF STACK_0, 0, 0 $354C $16E7 ANDWF INDF1, 1, 0 ;Lcd.ppas,24 :: $354E $1C1A COMF lcd____mrs, 0, 0 $3550 $6E00 MOVWF STACK_0, 0 $3552 $5000 MOVF STACK_0, 0, 0 $3554 $16E7 ANDWF INDF1, 1, 0 ;Lcd.ppas,25 :: $3556 $501C MOVF lcd____mdb6, 0, 0 $3558 $101B IORWF lcd____mdb7, 0, 0 $355A $6E00 MOVWF STACK_0, 0 $355C $501D MOVF lcd____mdb5, 0, 0 $355E $1200 IORWF STACK_0, 1, 0 $3560 $501E MOVF lcd____mdb4, 0, 0 $3562 $1200 IORWF STACK_0, 1, 0 $3564 $1E00 COMF STACK_0, 1, 0 $3566 $5000 MOVF STACK_0, 0, 0 $3568 $16EF ANDWF INDF0, 1, 0 ;Lcd.ppas,27 :: $356A $6A01 CLRF STACK_1, 0 $356C $0103 MOVLB 3

$352C

Appendix F

F-2

$BFDA BTFSC FARG_Lcd_Cmd, 7, 1 $3570 $2A01 STACK_1, 1, 0 $3572 $5001 MOVF STACK_1, 0, 0 $3574 $0A01 XORLW 1 $3576 $E102 Lcd_L_2 $3578 $ Lcd_L_1: ;Lcd.ppas,28 :: $3578 $501B MOVF lcd____mdb7, 0, 0 $357A $12EF IORWF INDF0, 1, 0 $357C $ Lcd_L_2: $357C $ Lcd_L_3: ;Lcd.ppas,29 :: $357C $6A01 STACK_1, 0 $357E $BDDA BTFSC FARG_Lcd_Cmd, 6, 1 $3580 $2A01 STACK_1, 1, 0 $3582 $5001 MOVF STACK_1, 0, 0 $3584 $0A01 XORLW 1 $3586 $E102 Lcd_L_5 $3588 $ Lcd_L_4: ;Lcd.ppas,30 :: $3588 $501C MOVF lcd____mdb6, 0, 0 $358A $12EF IORWF INDF0, 1, 0 $358C $ Lcd_L_5: $358C $ Lcd_L_6: ;Lcd.ppas,31 :: $358C $6A01 STACK_1, 0 $358E $BBDA BTFSC FARG_Lcd_Cmd, 5, 1 $3590 $2A01 STACK_1, 1, 0 $3592 $5001 MOVF STACK_1, 0, 0 $3594 $0A01 XORLW 1 $3596 $E102 Lcd_L_8 $3598 $ Lcd_L_7: ;Lcd.ppas,32 :: $3598 $501D MOVF lcd____mdb5, 0, 0 $359A $12EF IORWF INDF0, 1, 0 $359C $ Lcd_L_8: $359C $ Lcd_L_9: ;Lcd.ppas,33 :: $359C $6A01 STACK_1, 0 $359E $B9DA BTFSC FARG_Lcd_Cmd, 4, 1

$356E

INCF

BNZ

CLRF

INCF

BNZ

CLRF

INCF

BNZ

CLRF

$2A01 STACK_1, 1, 0 $35A2 $5001 MOVF STACK_1, 0, 0 $35A4 $0A01 XORLW 1 $35A6 $E102 Lcd_L_11 $35A8 $ Lcd_L_10: ;Lcd.ppas,34 :: $35A8 $501E MOVF lcd____mdb4, 0, 0 $35AA $12EF IORWF INDF0, 1, 0 $35AC $ Lcd_L_11: $35AC $ Lcd_L_12: ;Lcd.ppas,36 :: $35AC $501F MOVF lcd_lcdcmd_status, 0, 0 $35AE $0A01 XORLW 1 $35B0 $E105 Lcd_L_14 $35B2 $ Lcd_L_13: ;Lcd.ppas,37 :: $35B2 $1C1A COMF lcd____mrs, 0, 0 $35B4 $6E00 MOVWF STACK_0, 0 $35B6 $5000 MOVF STACK_0, 0, 0 $35B8 $16E7 ANDWF INDF1, 1, 0 $35BA $D003 Lcd_L_15 ;Lcd.ppas,38 :: $35BC $ Lcd_L_14: ;Lcd.ppas,39 :: $35BC $0103 MOVLB 3 $35BE $501A MOVF lcd____mrs, 0, 0 $35C0 $12E7 IORWF INDF1, 1, 0 $35C2 $ Lcd_L_15: ;Lcd.ppas,41 :: $35C2 $5019 MOVF lcd____menable, 0, 0 $35C4 $12E7 IORWF INDF1, 1, 0 ;Lcd.ppas,43 :: $35C6 $EC85 F024 _delay_1us ;Lcd.ppas,45 :: $35CA $1C19 COMF lcd____menable, 0, 0 $35CC $6E00 MOVWF STACK_0, 0 $35CE $5000 MOVF STACK_0, 0, 0 $35D0 $16E7 ANDWF INDF1, 1, 0 ;Lcd.ppas,46 :: $35D2 $1C1A COMF lcd____mrs, 0, 0

$35A0

INCF

BNZ

BNZ

BRA

CALL

Appendix F

F-3

$6E00 MOVWF STACK_0, 0 $35D6 $5000 MOVF STACK_0, 0, 0 $35D8 $16E7 ANDWF INDF1, 1, 0 ;Lcd.ppas,47 :: $35DA $501C MOVF lcd____mdb6, 0, 0 $35DC $101B IORWF lcd____mdb7, 0, 0 $35DE $6E00 MOVWF STACK_0, 0 $35E0 $501D MOVF lcd____mdb5, 0, 0 $35E2 $1200 IORWF STACK_0, 1, 0 $35E4 $501E MOVF lcd____mdb4, 0, 0 $35E6 $1200 IORWF STACK_0, 1, 0 $35E8 $1E00 COMF STACK_0, 1, 0 $35EA $5000 MOVF STACK_0, 0, 0 $35EC $16EF ANDWF INDF0, 1, 0 ;Lcd.ppas,49 :: $35EE $6A01 STACK_1, 0 $35F0 $0103 MOVLB 3 $35F2 $B7DA BTFSC FARG_Lcd_Cmd, 3, 1 $35F4 $2A01 STACK_1, 1, 0 $35F6 $5001 MOVF STACK_1, 0, 0 $35F8 $0A01 XORLW 1 $35FA $E102 Lcd_L_17 $35FC $ Lcd_L_16: ;Lcd.ppas,50 :: $35FC $501B MOVF lcd____mdb7, 0, 0 $35FE $12EF IORWF INDF0, 1, 0 $3600 $ Lcd_L_17: $3600 $ Lcd_L_18: ;Lcd.ppas,51 :: $3600 $6A01 STACK_1, 0 $3602 $B5DA BTFSC FARG_Lcd_Cmd, 2, 1 $3604 $2A01 STACK_1, 1, 0 $3606 $5001 MOVF STACK_1, 0, 0 $3608 $0A01 XORLW 1 $360A $E102 Lcd_L_20 $360C $ Lcd_L_19: ;Lcd.ppas,52 ::

$35D4

CLRF

INCF

BNZ

CLRF

INCF

BNZ

$501C MOVF lcd____mdb6, 0, 0 $360E $12EF IORWF INDF0, 1, 0 $3610 $ Lcd_L_20: $3610 $ Lcd_L_21: ;Lcd.ppas,53 :: $3610 $6A01 STACK_1, 0 $3612 $B3DA BTFSC FARG_Lcd_Cmd, 1, 1 $3614 $2A01 STACK_1, 1, 0 $3616 $5001 MOVF STACK_1, 0, 0 $3618 $0A01 XORLW 1 $361A $E102 Lcd_L_23 $361C $ Lcd_L_22: ;Lcd.ppas,54 :: $361C $501D MOVF lcd____mdb5, 0, 0 $361E $12EF IORWF INDF0, 1, 0 $3620 $ Lcd_L_23: $3620 $ Lcd_L_24: ;Lcd.ppas,55 :: $3620 $0E01 MOVLW 1 $3622 $15DA ANDWF FARG_Lcd_Cmd, 0, 1 $3624 $6E01 MOVWF STACK_1, 0 $3626 $5001 MOVF STACK_1, 0, 0 $3628 $0A01 XORLW 1 $362A $E102 Lcd_L_26 $362C $ Lcd_L_25: ;Lcd.ppas,56 :: $362C $501E MOVF lcd____mdb4, 0, 0 $362E $12EF IORWF INDF0, 1, 0 $3630 $ Lcd_L_26: $3630 $ Lcd_L_27: ;Lcd.ppas,58 :: $3630 $501F MOVF lcd_lcdcmd_status, 0, 0 $3632 $0A01 XORLW 1 $3634 $E105 Lcd_L_29 $3636 $ Lcd_L_28: ;Lcd.ppas,59 :: $3636 $1C1A COMF lcd____mrs, 0, 0 $3638 $6E00 MOVWF STACK_0, 0 $363A $5000 MOVF STACK_0, 0, 0 $363C $16E7 ANDWF INDF1, 1, 0

$360C

CLRF

INCF

BNZ

BNZ

BNZ

Appendix F

F-4

$D003 Lcd_L_30 ;Lcd.ppas,60 :: $3640 $ Lcd_L_29: ;Lcd.ppas,61 :: $3640 $0103 MOVLB 3 $3642 $501A MOVF lcd____mrs, 0, 0 $3644 $12E7 IORWF INDF1, 1, 0 $3646 $ Lcd_L_30: ;Lcd.ppas,63 :: $3646 $0103 MOVLB 3 $3648 $5019 MOVF lcd____menable, 0, 0 $364A $12E7 IORWF INDF1, 1, 0 ;Lcd.ppas,64 :: $364C $EC85 F024 _delay_1us ;Lcd.ppas,65 :: $3650 $1C19 COMF lcd____menable, 0, 0 $3652 $6E00 MOVWF STACK_0, 0 $3654 $5000 MOVF STACK_0, 0, 0 $3656 $16E7 ANDWF INDF1, 1, 0 ;Lcd.ppas,67 :: $3658 $501F MOVF lcd_lcdcmd_status, 0, 0 $365A $0A01 XORLW 1 $365C $E103 Lcd_L_32 $365E $ Lcd_L_31: ;Lcd.ppas,68 :: $365E $EC0E F024 _delay_5500us $3662 $D002 Lcd_L_33 ;Lcd.ppas,69 :: $3664 $ Lcd_L_32: ;Lcd.ppas,70 :: $3664 $EC6B F024 _delay_50us $3668 $ Lcd_L_33: $3668 $ Lcd_L_0: ;Lcd.ppas,71 :: $3668 $0012 RETURN $31C0 $ _nrm4032: $31C0 $0100 MOVLB 0 ;math_double.ppas,183 :: ;math_double.ppas,192 :: $31C2 $B00C BTFSC STACK_12, 0, 0 ;math_double.ppas,193 :: $31C4 $EF23 F019 GOTO NRMRND4032 ;math_double.ppas,194 ::

$363E

BRA

CALL

BNZ

CALL BRA

CALL

$A20C BTFSS STACK_12, 1, 0 ;math_double.ppas,195 :: $31CA $EFCB F019 GOTO NRM40JPSETFOV32 ;math_double.ppas,196 :: $31CE $ NRM4032: ;math_double.ppas,197 :: $31CE $6A0E STACK_14, 0 ;math_double.ppas,198 :: $31D0 $0E00 MOVLW 0X00 ;math_double.ppas,199 :: $31D2 $6402 CPFSGT STACK_2, 0 ;math_double.ppas,201 :: $31D4 $EF3A F019 GOTO NRM4032A ;math_double.ppas,202 :: $31D8 $ TNIB4032: ;math_double.ppas,203 :: $31D8 $0EF0 MOVLW 0XF0 ;math_double.ppas,204 :: $31DA $1402 ANDWF STACK_2, W, 0 ;math_double.ppas,205 :: $31DC $A4D8 BTFSS STATUS, Z, 0 ;math_double.ppas,207 :: $31DE $EF05 F019 GOTO NORM4032 ;math_double.ppas,208 :: $31E2 $3A02 SWAPF STACK_2, F, 0 ;math_double.ppas,209 :: $31E4 $3801 SWAPF STACK_1, W, 0 ;math_double.ppas,210 :: $31E6 $0B0F ANDLW 0X0F ;math_double.ppas,212 :: $31E8 $2602 ADDWF STACK_2, F, 0 ;math_double.ppas,213 :: $31EA $3801 SWAPF STACK_1, W, 0 ;math_double.ppas,214 :: $31EC $0BF0 ANDLW 0XF0 ;math_double.ppas,215 :: $31EE $6E01 MOVWF STACK_1, 0 ;math_double.ppas,216 :: $31F0 $3800 SWAPF STACK_0, W, 0 ;math_double.ppas,217 :: $31F2 $0B0F ANDLW 0X0F ;math_double.ppas,219 :: $31F4 $2601 ADDWF STACK_1, F, 0 ;math_double.ppas,220 :: $31F6 $3800 SWAPF STACK_0, W, 0

$31C8

CLRF

Appendix F

F-5

;math_double.ppas,221 :: $31F8 $0BF0 ANDLW 0XF0 ;math_double.ppas,222 :: $31FA $6E00 MOVWF STACK_0, 0 ;math_double.ppas,223 :: $31FC $3808 SWAPF STACK_8, W, 0 ;math_double.ppas,224 :: $31FE $0B0F ANDLW 0X0F ;math_double.ppas,226 :: $3200 $2600 ADDWF STACK_0, F, 0 ;math_double.ppas,227 :: $3202 $3808 SWAPF STACK_8, W, 0 ;math_double.ppas,228 :: $3204 $0BF0 ANDLW 0XF0 ;math_double.ppas,230 :: $3206 $6E08 MOVWF STACK_8, 0 ;math_double.ppas,232 :: $3208 $840E STACK_14, 2, 0 ;math_double.ppas,233 :: $320A $ NORM4032: ;math_double.ppas,235 :: $320A $90D8 STATUS, C, 0 ;math_double.ppas,236 :: $320C $BE02 BTFSC STACK_2, 7, 0 ;math_double.ppas,237 :: $320E $EF1E F019 GOTO TNORMUN4032 ;math_double.ppas,238 :: $3212 $3608 STACK_8, F, 0 ;math_double.ppas,239 :: $3214 $3600 STACK_0, F, 0 ;math_double.ppas,240 :: $3216 $3601 STACK_1, F, 0 ;math_double.ppas,241 :: $3218 $3602 STACK_2, F, 0 ;math_double.ppas,242 :: $321A $2A0E STACK_14, F, 0 ;math_double.ppas,243 :: $321C $BE02 BTFSC STACK_2, 7, 0 ;math_double.ppas,244 :: $321E $EF1E F019 GOTO TNORMUN4032 ;math_double.ppas,245 :: $3222 $3608 STACK_8, F, 0 ;math_double.ppas,246 :: $3224 $3600 STACK_0, F, 0 ;math_double.ppas,247 ::

BSF

BCF

RLCF RLCF RLCF RLCF INCF

RLCF RLCF

$3601 STACK_1, F, 0 ;math_double.ppas,248 :: $3228 $3602 STACK_2, F, 0 ;math_double.ppas,249 :: $322A $2A0E STACK_14, F, 0 ;math_double.ppas,250 :: $322C $BE02 BTFSC STACK_2, 7, 0 ;math_double.ppas,251 :: $322E $EF1E F019 GOTO TNORMUN4032 ;math_double.ppas,252 :: $3232 $3608 STACK_8, F, 0 ;math_double.ppas,253 :: $3234 $3600 STACK_0, F, 0 ;math_double.ppas,254 :: $3236 $3601 STACK_1, F, 0 ;math_double.ppas,255 :: $3238 $3602 STACK_2, F, 0 ;math_double.ppas,257 :: $323A $2A0E STACK_14, F, 0 ;math_double.ppas,258 :: $323C $ TNORMUN4032: ;math_double.ppas,259 :: $323C $500E MOVF STACK_14, W, 0 ;math_double.ppas,260 :: $323E $6403 CPFSGT STACK_3, 0 ;math_double.ppas,261 :: $3240 $EFBF F019 GOTO NRM40JPSETFUN32 ;math_double.ppas,263 :: $3244 $5E03 SUBWF STACK_3, F, 0 ;math_double.ppas,264 :: $3246 $ NRMRND4032: ;math_double.ppas,265 :: $3246 $BC0B BTFSC STACK_11, RND, 0 ;math_double.ppas,266 :: $3248 $AE08 BTFSS STACK_8, 7, 0 ;math_double.ppas,267 :: $324A $EFC5 F019 GOTO NRM40JPFIXSIGN32 ;math_double.ppas,268 :: $324E $80D8 STATUS, C, 0 ;math_double.ppas,269 :: $3250 $0E80 MOVLW 0X80 ;math_double.ppas,270 :: $3252 $6408 CPFSGT STACK_8, 0 ;math_double.ppas,271 :: $3254 $3000 STACK_0, W, 0

$3226

RLCF RLCF INCF

RLCF RLCF RLCF RLCF INCF

BSF

RRCF

Appendix F

F-6

;math_double.ppas,272 :: $3256 $0E00 MOVLW 0X00 ;math_double.ppas,273 :: $3258 $2200 ADDWFC STACK_0, F, 0 ;math_double.ppas,274 :: $325A $2201 ADDWFC STACK_1, F, 0 ;math_double.ppas,276 :: $325C $2202 ADDWFC STACK_2, F, 0 ;math_double.ppas,277 :: $325E $A0D8 BTFSS STATUS, C, 0 ;math_double.ppas,278 :: $3260 $EFC5 F019 GOTO NRM40JPFIXSIGN32 ;math_double.ppas,279 :: $3264 $3202 STACK_2, F, 0 ;math_double.ppas,280 :: $3266 $3201 STACK_1, F, 0 ;math_double.ppas,281 :: $3268 $3200 STACK_0, F, 0 ;math_double.ppas,282 :: $326A $4A03 INFSNZ STACK_3, F, 0 ;math_double.ppas,283 :: $326C $EFCB F019 GOTO NRM40JPSETFOV32 ;math_double.ppas,285 :: $3270 $EFC5 F019 GOTO NRM40JPFIXSIGN32 ;math_double.ppas,286 :: $3274 $ NRM4032A: ;math_double.ppas,287 :: $3274 $C001 F002 MOVFF STACK_1, STACK_2 ;math_double.ppas,288 :: $3278 $C000 F001 MOVFF STACK_0, STACK_1 ;math_double.ppas,289 :: $327C $C008 F000 MOVFF STACK_8, STACK_0 ;math_double.ppas,290 :: $3280 $6A08 STACK_8, 0 ;math_double.ppas,291 :: $3282 $0E00 MOVLW 0X00 ;math_double.ppas,292 :: $3284 $860E STACK_14, 3, 0 ;math_double.ppas,293 :: $3286 $6402 CPFSGT STACK_2, 0 ;math_double.ppas,295 :: $3288 $EF71 F019 GOTO NRM4032B ;math_double.ppas,296 :: $328C $ TNIB4032A: ;math_double.ppas,297 ::

RRCF RRCF RRCF

CLRF

BSF

$0EF0 MOVLW 0XF0 ;math_double.ppas,298 :: $328E $1402 ANDWF STACK_2, W, 0 ;math_double.ppas,299 :: $3290 $A4D8 BTFSS STATUS, Z, 0 ;math_double.ppas,300 :: $3292 $EF59 F019 GOTO NORM4032A ;math_double.ppas,301 :: $3296 $3A02 SWAPF STACK_2, F, 0 ;math_double.ppas,302 :: $3298 $3801 SWAPF STACK_1, W, 0 ;math_double.ppas,303 :: $329A $0B0F ANDLW 0X0F ;math_double.ppas,305 :: $329C $2602 ADDWF STACK_2, F, 0 ;math_double.ppas,306 :: $329E $3801 SWAPF STACK_1, W, 0 ;math_double.ppas,307 :: $32A0 $0BF0 ANDLW 0XF0 ;math_double.ppas,308 :: $32A2 $6E01 MOVWF STACK_1, 0 ;math_double.ppas,309 :: ;Lcd.ppas,189 :: $313E $1C1B COMF lcd____mdb7, 0, 0 $3140 $6E00 MOVWF STACK_0, 0 $3142 $5000 MOVF STACK_0, 0, 0 $3144 $16EF ANDWF INDF0, 1, 0 ;Lcd.ppas,190 :: $3146 $501E MOVF lcd____mdb4, 0, 0 $3148 $12EF IORWF INDF0, 1, 0 ;Lcd.ppas,191 :: $314A $5019 MOVF lcd____menable, 0, 0 _yy3, 0, 1 $2330 $0A03 XORLW 3 $2332 $E103 SmartGlobe_L_146 $2334 $ SmartGlobe_L_145: ;SmartGlobe.pbas,205 :: $4a $2334 $0E4A MOVLW 74 $2336 $6F1A MOVWF _cnt, 1 $2338 $D023 SmartGlobe_L_147 ;SmartGlobe.pbas,206 :: $233A $ SmartGlobe_L_146:

$328C

BNZ cnt =

BRA else

Appendix F

F-7

;SmartGlobe.pbas,207 :: = 4 then $233A $5119 MOVF _yy3, 0, 1 $233C $0A04 XORLW 4 $233E $E103 SmartGlobe_L_149 $2340 $ SmartGlobe_L_148: ;SmartGlobe.pbas,208 :: $4b $2340 $0E4B MOVLW 75 $2342 $6F1A MOVWF _cnt, 1 $2344 $D01D SmartGlobe_L_150 ;SmartGlobe.pbas,209 :: $2346 $ SmartGlobe_L_149: ;SmartGlobe.pbas,210 :: = 5 then $2346 $5119 MOVF _yy3, 0, 1 $2348 $0A05 XORLW 5 $234A $E103 SmartGlobe_L_152 $234C $ SmartGlobe_L_151: ;SmartGlobe.pbas,211 :: $4c $234C $0E4C MOVLW 76 $234E $6F1A MOVWF _cnt, 1 $2350 $D017 SmartGlobe_L_153 ;SmartGlobe.pbas,212 :: $2352 $ SmartGlobe_L_152: ;SmartGlobe.pbas,213 :: = 6 then $2352 $5119 MOVF _yy3, 0, 1 $2354 $0A06 XORLW 6 $2356 $E103 SmartGlobe_L_155 $2358 $ SmartGlobe_L_154: ;SmartGlobe.pbas,214 :: 53 $2358 $0E35 MOVLW 53 $235A $6F1A MOVWF _cnt, 1 $235C $D011 SmartGlobe_L_156 ;SmartGlobe.pbas,215 :: $235E $ SmartGlobe_L_155: ;SmartGlobe.pbas,216 :: = 7 then $235E $5119 MOVF _yy3, 0, 1 $2360 $0A07 XORLW 7 $2362 $E103 SmartGlobe_L_158 $2364 $ SmartGlobe_L_157:

if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ

;SmartGlobe.pbas,217 :: 63 $2364 $0E3F MOVLW 63 $2366 $6F1A MOVWF _cnt, 1 $2368 $D00B SmartGlobe_L_159 ;SmartGlobe.pbas,218 :: $236A $ SmartGlobe_L_158: ;SmartGlobe.pbas,219 :: = 8 then $236A $5119 MOVF _yy3, 0, 1 $236C $0A08 XORLW 8 $236E $E103 SmartGlobe_L_161 $2370 $ SmartGlobe_L_160: ;SmartGlobe.pbas,220 :: 64 $2370 $0E40 MOVLW 64 $2372 $6F1A MOVWF _cnt, 1 $2374 $D005 SmartGlobe_L_162 ;SmartGlobe.pbas,221 :: $2376 $ SmartGlobe_L_161: ;SmartGlobe.pbas,222 :: = 9 then $2376 $5119 MOVF _yy3, 0, 1 $2378 $0A09 XORLW 9 $237A $E102 SmartGlobe_L_164 $237C $ SmartGlobe_L_163: ;SmartGlobe.pbas,223 :: 91 $237C $0E5B MOVLW 91 $237E $6F1A MOVWF _cnt, 1 $2380 $ SmartGlobe_L_164: ;SmartGlobe.pbas,224 :: if $2380 $ SmartGlobe_L_165: ;SmartGlobe.pbas,225 :: if $2380 $ SmartGlobe_L_162: ;SmartGlobe.pbas,226 :: if $2380 $ SmartGlobe_L_159: ;SmartGlobe.pbas,227 :: if $2380 $ SmartGlobe_L_156: ;SmartGlobe.pbas,228 :: if $2380 $ SmartGlobe_L_153: ;SmartGlobe.pbas,229 :: if $2380 $ SmartGlobe_L_150: ;SmartGlobe.pbas,230 :: if $2380 $ SmartGlobe_L_147:

cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

end end end end end end end

Appendix F

F-8

;SmartGlobe.pbas,231 :: if $2380 $ SmartGlobe_L_144: ;SmartGlobe.pbas,232 :: if $2380 $ SmartGlobe_L_141: ;SmartGlobe.pbas,233 :: if $2380 $ SmartGlobe_L_138: $2380 $D144 SmartGlobe_L_135 ;SmartGlobe.pbas,235 :: $2382 $ SmartGlobe_L_134: ;SmartGlobe.pbas,236 :: = 54 then $2382 $0100 MOVLB 0 $2384 $51CA MOVF _kp, 0, 1 $2386 $0A36 XORLW 54 $2388 $E13D SmartGlobe_L_167 $238A $ SmartGlobe_L_166: ;SmartGlobe.pbas,238 :: = 0 then $238A $0103 MOVLB 3 $238C $5119 MOVF _yy3, 0, 1 $238E $0A00 XORLW 0 $2390 $E103 SmartGlobe_L_170 $2392 $ SmartGlobe_L_169: ;SmartGlobe.pbas,239 :: $6d $2392 $0E6D MOVLW 109 $2394 $6F1A MOVWF _cnt, 1 $2396 $D035 SmartGlobe_L_171 ;SmartGlobe.pbas,240 :: $2398 $ SmartGlobe_L_170: ;SmartGlobe.pbas,241 :: = 1 then $2398 $5119 MOVF _yy3, 0, 1 $239A $0A01 XORLW 1 $239C $E103 SmartGlobe_L_173 $239E $ SmartGlobe_L_172: ;SmartGlobe.pbas,242 :: $6e $239E $0E6E MOVLW 110 $23A0 $6F1A MOVWF _cnt, 1 $23A2 $D02F SmartGlobe_L_174 ;SmartGlobe.pbas,243 :: $23A4 $ SmartGlobe_L_173: ;SmartGlobe.pbas,244 :: = 2 then

end end end BRA else if kp

BNZ if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

$5119 MOVF _yy3, 0, 1 $23A6 $0A02 XORLW 2 ;SmartGlobe.pbas,248 :: $4d $23B6 $0E4D MOVLW 77 $23B8 $6F1A MOVWF _cnt, 1 $23BA $D023 SmartGlobe_L_180 ;SmartGlobe.pbas,249 :: $23BC $ SmartGlobe_L_179: ;SmartGlobe.pbas,250 :: = 4 then $23BC $5119 MOVF _yy3, 0, 1 $23BE $0A04 XORLW 4 $23C0 $E103 SmartGlobe_L_182 $23C2 $ SmartGlobe_L_181: ;SmartGlobe.pbas,251 :: $4e $23C2 $0E4E MOVLW 78 $23C4 $6F1A MOVWF _cnt, 1 $23C6 $D01D SmartGlobe_L_183 ;SmartGlobe.pbas,252 :: $23C8 $ SmartGlobe_L_182: ;SmartGlobe.pbas,253 :: = 5 then $23C8 $5119 MOVF _yy3, 0, 1 $23CA $0A05 XORLW 5 $23CC $E103 SmartGlobe_L_185 $23CE $ SmartGlobe_L_184: ;SmartGlobe.pbas,254 :: $4f $23CE $0E4F MOVLW 79 $23D0 $6F1A MOVWF _cnt, 1 $23D2 $D017 SmartGlobe_L_186 ;SmartGlobe.pbas,255 :: $23D4 $ SmartGlobe_L_185: ;SmartGlobe.pbas,256 :: = 6 then $23D4 $5119 MOVF _yy3, 0, 1 $23D6 $0A06 XORLW 6 $23D8 $E103 SmartGlobe_L_188 $23DA $ SmartGlobe_L_187: ;SmartGlobe.pbas,257 :: 54 $23DA $0E36 MOVLW 54

$23A4

cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

Appendix F

F-9

$6F1A MOVWF _cnt, 1 $23DE $D011 SmartGlobe_L_189 ;SmartGlobe.pbas,258 :: $23E0 $ SmartGlobe_L_188: ;SmartGlobe.pbas,259 :: = 7 then $23E0 $5119 MOVF _yy3, 0, 1 $23E2 $0A07 XORLW 7 $23E4 $E103 SmartGlobe_L_191 $23E6 $ SmartGlobe_L_190: ;SmartGlobe.pbas,260 :: 92 $23E6 $0E5C MOVLW 92 $23E8 $6F1A MOVWF _cnt, 1 $23EA $D00B SmartGlobe_L_192 ;SmartGlobe.pbas,261 :: $23EC $ SmartGlobe_L_191: ;SmartGlobe.pbas,262 :: = 8 then $23EC $5119 MOVF _yy3, 0, 1 $23EE $0A08 XORLW 8 $23F0 $E103 SmartGlobe_L_194 $23F2 $ SmartGlobe_L_193: ;SmartGlobe.pbas,263 :: 93 $23F2 $0E5D MOVLW 93 $23F4 $6F1A MOVWF _cnt, 1 $23F6 $D005 SmartGlobe_L_195 ;SmartGlobe.pbas,264 :: $23F8 $ SmartGlobe_L_194: ;SmartGlobe.pbas,265 :: = 9 then $23F8 $5119 MOVF _yy3, 0, 1 $23FA $0A09 XORLW 9 $23FC $E102 SmartGlobe_L_197 $23FE $ SmartGlobe_L_196: ;SmartGlobe.pbas,266 :: 94 $23FE $0E5E MOVLW 94 $2400 $6F1A MOVWF _cnt, 1 $2402 $ SmartGlobe_L_197: ;SmartGlobe.pbas,267 :: if $2402 $ SmartGlobe_L_198: ;SmartGlobe.pbas,268 :: if $2402 $ SmartGlobe_L_195:

$23DC

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

end end

;SmartGlobe.pbas,269 :: if $2402 $ SmartGlobe_L_192: ;SmartGlobe.pbas,270 :: if $2402 $ SmartGlobe_L_189: ;SmartGlobe.pbas,271 :: if $2402 $ SmartGlobe_L_186: ;SmartGlobe.pbas,272 :: if $2402 $ SmartGlobe_L_183: ;SmartGlobe.pbas,273 :: if $2402 $ SmartGlobe_L_180: ;SmartGlobe.pbas,274 :: if $2402 $ SmartGlobe_L_177: ;SmartGlobe.pbas,275 :: if $2402 $ SmartGlobe_L_174: ;SmartGlobe.pbas,276 :: if $2402 $ SmartGlobe_L_171: $2402 $D103 SmartGlobe_L_168 ;SmartGlobe.pbas,278 :: $2404 $ SmartGlobe_L_167: ;SmartGlobe.pbas,279 :: = 55 then $2404 $0100 MOVLB 0 $2406 $51CA MOVF _kp, 0, 1 $2408 $0A37 XORLW 55 $240A $E13D SmartGlobe_L_200 $240C $ SmartGlobe_L_199: ;SmartGlobe.pbas,281 :: = 0 then $240C $0103 MOVLB 3 $240E $5119 MOVF _yy3, 0, 1 $2410 $0A00 XORLW 0 $2412 $E103 SmartGlobe_L_203 $2414 $ SmartGlobe_L_202: ;SmartGlobe.pbas,282 :: $70 $2414 $0E70 MOVLW 112 $2416 $6F1A MOVWF _cnt, 1 $2418 $D035 SmartGlobe_L_204 ;SmartGlobe.pbas,283 :: $241A $ SmartGlobe_L_203: ;SmartGlobe.pbas,284 :: = 1 then $241A $5119 MOVF _yy3, 0, 1 $241C $0A01 XORLW 1

end end end end end end end end BRA else if kp

BNZ if yy3

BNZ cnt =

BRA else if yy3

Appendix F

F-10

$E103 SmartGlobe_L_206 $2420 $ SmartGlobe_L_205: ;SmartGlobe.pbas,285 :: $71 $2420 $0E71 MOVLW 113 $2422 $6F1A MOVWF _cnt, 1 $2424 $D02F SmartGlobe_L_207 ;SmartGlobe.pbas,286 :: $2426 $ SmartGlobe_L_206: ;SmartGlobe.pbas,287 :: = 2 then $2426 $5119 MOVF _yy3, 0, 1 $2428 $0A02 XORLW 2 $242A $E103 SmartGlobe_L_209 $242C $ SmartGlobe_L_208: ;SmartGlobe.pbas,288 :: $72 $242C $0E72 MOVLW 114 $242E $6F1A MOVWF _cnt, 1 $2430 $D029 SmartGlobe_L_210 ;SmartGlobe.pbas,289 :: $2432 $ SmartGlobe_L_209: ;SmartGlobe.pbas,290 :: = 3 then $2432 $5119 MOVF _yy3, 0, 1 $2434 $0A03 XORLW 3 $2436 $E103 SmartGlobe_L_212 $2438 $ SmartGlobe_L_211: ;SmartGlobe.pbas,291 :: $73 $2438 $0E73 MOVLW 115 $243A $6F1A MOVWF _cnt, 1 $243C $D023 SmartGlobe_L_213 ;SmartGlobe.pbas,292 :: $243E $ SmartGlobe_L_212: ;SmartGlobe.pbas,293 :: = 4 then $243E $5119 MOVF _yy3, 0, 1 $2440 $0A04 XORLW 4 $2442 $E103 SmartGlobe_L_215 $2444 $ SmartGlobe_L_214: ;SmartGlobe.pbas,294 :: $50 $2444 $0E50 MOVLW 80 $2446 $6F1A MOVWF _cnt, 1

$241E

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

$D01D SmartGlobe_L_216 ;SmartGlobe.pbas,295 :: $244A $ SmartGlobe_L_215: ;SmartGlobe.pbas,296 :: = 5 then $244A $5119 MOVF _yy3, 0, 1 $244C $0A05 XORLW 5 $244E $E103 SmartGlobe_L_218 $2450 $ SmartGlobe_L_217: ;SmartGlobe.pbas,297 :: $51 $2450 $0E51 MOVLW 81 $2452 $6F1A MOVWF _cnt, 1 $2454 $D017 SmartGlobe_L_219 ;SmartGlobe.pbas,298 :: $2456 $ SmartGlobe_L_218: ;SmartGlobe.pbas,299 :: = 6 then $2456 $5119 MOVF _yy3, 0, 1 $2458 $0A06 XORLW 6 $245A $E103 SmartGlobe_L_221 $245C $ SmartGlobe_L_220: ;SmartGlobe.pbas,300 :: $52 $245C $0E52 MOVLW 82 $245E $6F1A MOVWF _cnt, 1 $2460 $D011 SmartGlobe_L_222 ;SmartGlobe.pbas,301 :: $2462 $ SmartGlobe_L_221: ;SmartGlobe.pbas,302 :: = 7 then $2462 $5119 MOVF _yy3, 0, 1 $2464 $0A07 XORLW 7 $2466 $E103 SmartGlobe_L_224 $2468 $ SmartGlobe_L_223: ;SmartGlobe.pbas,303 :: $53 $2468 $0E53 MOVLW 83 $246A $6F1A MOVWF _cnt, 1 $246C $D00B SmartGlobe_L_225 ;SmartGlobe.pbas,304 :: $246E $ SmartGlobe_L_224: ;SmartGlobe.pbas,305 :: = 8 then $246E $5119 MOVF _yy3, 0, 1

$2448

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

Appendix F

F-11

$0A08 XORLW 8 $2472 $E103 SmartGlobe_L_227 $2474 $ SmartGlobe_L_226: ;SmartGlobe.pbas,306 :: 55 $2474 $0E37 MOVLW 55 $2476 $6F1A MOVWF _cnt, 1 $2478 $D005 SmartGlobe_L_228 ;SmartGlobe.pbas,307 :: $247A $ SmartGlobe_L_227: ;SmartGlobe.pbas,308 :: = 9 then $247A $5119 MOVF _yy3, 0, 1 $247C $0A09 XORLW 9 $247E $E102 SmartGlobe_L_230 $2480 $ SmartGlobe_L_229: ;SmartGlobe.pbas,309 :: 95 $2480 $0E5F MOVLW 95 $2482 $6F1A MOVWF _cnt, 1 $2484 $ SmartGlobe_L_230: ;SmartGlobe.pbas,310 :: if $2484 $ SmartGlobe_L_231: ;SmartGlobe.pbas,311 :: if $2484 $ SmartGlobe_L_228: ;SmartGlobe.pbas,312 :: if ;SmartGlobe.pbas,352 :: 124 SmartGlobe_L_294 ;SmartGlobe.pbas,393 :: $257E $ SmartGlobe_L_293: ;SmartGlobe.pbas,394 :: = 9 then $257E $5119 MOVF _yy3, 0, 1 $2580 $0A09 XORLW 9 $2582 $E102 SmartGlobe_L_296 $2584 $ SmartGlobe_L_295: ;SmartGlobe.pbas,395 :: 125 $2584 $0E7D MOVLW 125 $2586 $6F1A MOVWF _cnt, 1 $2588 $ SmartGlobe_L_296: ;SmartGlobe.pbas,396 :: if $2588 $ SmartGlobe_L_297: ;SmartGlobe.pbas,397 :: if $2588 $ SmartGlobe_L_294:

$2470

BNZ cnt =

BRA else if yy3

BNZ cnt =

end end end cnt = else if yy3

BNZ cnt =

end end

;SmartGlobe.pbas,398 :: if $2588 $ SmartGlobe_L_291: ;SmartGlobe.pbas,399 :: if $2588 $ SmartGlobe_L_288: ;SmartGlobe.pbas,400 :: if $2588 $ SmartGlobe_L_285: ;SmartGlobe.pbas,401 :: if $2588 $ SmartGlobe_L_282: ;SmartGlobe.pbas,402 :: if $2588 $ SmartGlobe_L_279: ;SmartGlobe.pbas,403 :: if $2588 $ SmartGlobe_L_276: ;SmartGlobe.pbas,404 :: if $2588 $ SmartGlobe_L_273: ;SmartGlobe.pbas,405 :: if $2588 $ SmartGlobe_L_270: $2588 $D040 SmartGlobe_L_267 ;SmartGlobe.pbas,407 :: $258A $ SmartGlobe_L_266: ;SmartGlobe.pbas,408 :: = 48 then $258A $0100 MOVLB 0 $258C $51CA MOVF _kp, 0, 1 $258E $0A30 XORLW 48 $2590 $E13C SmartGlobe_L_299 $2592 $ SmartGlobe_L_298: ;SmartGlobe.pbas,410 :: = 0 then $2592 $0103 MOVLB 3 $2594 $5119 MOVF _yy3, 0, 1 $2596 $0A00 XORLW 0 $2598 $E103 SmartGlobe_L_302 $259A $ SmartGlobe_L_301: ;SmartGlobe.pbas,411 :: 32 $259A $0E20 MOVLW 32 $259C $6F1A MOVWF _cnt, 1 $259E $D035 SmartGlobe_L_303 ;SmartGlobe.pbas,412 :: $25A0 $ SmartGlobe_L_302: ;SmartGlobe.pbas,413 :: = 1 then $25A0 $5119 MOVF _yy3, 0, 1 $25A2 $0A01 XORLW 1

end end end end end end end end BRA else if kp

BNZ if yy3

BNZ cnt =

BRA else if yy3

Appendix F

F-12

$E103 SmartGlobe_L_305 $25A6 $ SmartGlobe_L_304: ;SmartGlobe.pbas,414 :: 48 $25A6 $0E30 MOVLW 48 $25A8 $6F1A MOVWF _cnt, 1 $25AA $D02F SmartGlobe_L_306 ;SmartGlobe.pbas,415 :: $25AC $ SmartGlobe_L_305: ;SmartGlobe.pbas,416 :: = 2 then $25AC $5119 MOVF _yy3, 0, 1 $25AE $0A02 XORLW 2 $25B0 $E103 SmartGlobe_L_308 $25B2 $ SmartGlobe_L_307: ;SmartGlobe.pbas,417 :: 32 $25B2 $0E20 MOVLW 32 $25B4 $6F1A MOVWF _cnt, 1 $25B6 $D029 SmartGlobe_L_309 ;SmartGlobe.pbas,418 :: $25B8 $ SmartGlobe_L_308: ;SmartGlobe.pbas,419 :: = 3 then $25B8 $5119 MOVF _yy3, 0, 1 $25BA $0A03 XORLW 3 $25BC $E103 SmartGlobe_L_311 $25BE $ SmartGlobe_L_310: ;SmartGlobe.pbas,420 :: 48 $25BE $0E30 MOVLW 48 $25C0 $6F1A MOVWF _cnt, 1 $25C2 $D023 SmartGlobe_L_312 ;SmartGlobe.pbas,421 :: $25C4 $ SmartGlobe_L_311: ;SmartGlobe.pbas,422 :: = 4 then $25C4 $5119 MOVF _yy3, 0, 1 $25C6 $0A04 XORLW 4 $25C8 $E103 SmartGlobe_L_314 $25CA $ SmartGlobe_L_313: ;SmartGlobe.pbas,423 :: 32 $25CA $0E20 MOVLW 32 $25CC $6F1A MOVWF _cnt, 1

$25A4

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

$D01D SmartGlobe_L_315 ;SmartGlobe.pbas,424 :: $25D0 $ SmartGlobe_L_314: ;SmartGlobe.pbas,425 :: = 5 then $25D0 $5119 MOVF _yy3, 0, 1 $25D2 $0A05 XORLW 5 $25D4 $E103 SmartGlobe_L_317 $25D6 $ SmartGlobe_L_316: ;SmartGlobe.pbas,426 :: 48 $25D6 $0E30 MOVLW 48 $25D8 $6F1A MOVWF _cnt, 1 $25DA $D017 SmartGlobe_L_318 ;SmartGlobe.pbas,427 :: $25DC $ SmartGlobe_L_317: ;SmartGlobe.pbas,428 :: = 6 then $25DC $5119 MOVF _yy3, 0, 1 $25DE $0A06 XORLW 6 $25E0 $E103 SmartGlobe_L_320 $25E2 $ SmartGlobe_L_319: ;SmartGlobe.pbas,429 :: 32 $25E2 $0E20 MOVLW 32 $25E4 $6F1A MOVWF _cnt, 1 $25E6 $D011 SmartGlobe_L_321 ;SmartGlobe.pbas,430 :: $25E8 $ SmartGlobe_L_320: ;SmartGlobe.pbas,431 :: = 7 then $25E8 $5119 MOVF _yy3, 0, 1 $25EA $0A07 XORLW 7 $25EC $E103 SmartGlobe_L_323 $25EE $ SmartGlobe_L_322: ;SmartGlobe.pbas,432 :: 48 $25EE $0E30 MOVLW 48 $25F0 $6F1A MOVWF _cnt, 1 $25F2 $D00B SmartGlobe_L_324 ;SmartGlobe.pbas,433 :: $25F4 $ SmartGlobe_L_323: ;SmartGlobe.pbas,434 :: = 8 then $25F4 $5119 MOVF _yy3, 0, 1

$25CE

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

BNZ cnt =

BRA else if yy3

Appendix F

F-13

$0A08 XORLW 8 $25F8 $E103 SmartGlobe_L_326 $25FA $ SmartGlobe_L_325: ;SmartGlobe.pbas,435 :: 32 $25FA $0E20 MOVLW 32 $25FC $6F1A MOVWF _cnt, 1 $25FE $D005 SmartGlobe_L_327 ;SmartGlobe.pbas,436 :: $2600 $ SmartGlobe_L_326: ;SmartGlobe.pbas,437 :: = 9 then $2600 $5119 MOVF _yy3, 0, 1 $2602 $0A09 XORLW 9 $2604 $E102 SmartGlobe_L_329 $2606 $ SmartGlobe_L_328: ;SmartGlobe.pbas,438 :: 48 $2606 $0E30 MOVLW 48 $2608 $6F1A MOVWF _cnt, 1 $260A $ SmartGlobe_L_329: ;SmartGlobe.pbas,439 :: if $260A $ SmartGlobe_L_330: ;SmartGlobe.pbas,440 :: if $260A $ SmartGlobe_L_327: ;SmartGlobe.pbas,441 :: if $260A $ SmartGlobe_L_324: ;SmartGlobe.pbas,442 :: if $260A $ SmartGlobe_L_321: ;SmartGlobe.pbas,443 :: if $260A $ SmartGlobe_L_318: ;SmartGlobe.pbas,444 :: if $260A $ SmartGlobe_L_315: ;SmartGlobe.pbas,445 :: if $260A $ SmartGlobe_L_312: ;SmartGlobe.pbas,446 :: if $260A $ SmartGlobe_L_309: ;SmartGlobe.pbas,447 :: if $260A $ SmartGlobe_L_306: ;SmartGlobe.pbas,448 :: if $260A $ SmartGlobe_L_303: $260A $ SmartGlobe_L_299: ;SmartGlobe.pbas,451 :: if $260A $ SmartGlobe_L_300:

$25F6

BNZ cnt =

BRA else if yy3

BNZ cnt =

end end end end end end end end end end

end

;SmartGlobe.pbas,452 :: if $260A $ SmartGlobe_L_267: ;SmartGlobe.pbas,453 :: if $260A $ SmartGlobe_L_234: ;SmartGlobe.pbas,454 :: if $260A $ SmartGlobe_L_201: ;SmartGlobe.pbas,455 :: if $260A $ SmartGlobe_L_168: ;SmartGlobe.pbas,456 :: if $260A $ SmartGlobe_L_135: ;SmartGlobe.pbas,457 :: if $260A $ SmartGlobe_L_102: ;SmartGlobe.pbas,458 :: if $260A $ SmartGlobe_L_69: ;SmartGlobe.pbas,459 :: if $260A $ SmartGlobe_L_36: ;SmartGlobe.pbas,460 :: if $260A $ SmartGlobe_L_3: $260A $ SmartGlobe_L_0: $260A $0103 MOVLB 3 $260C $0012 RETURN $3EEA $ _outdata: ;SmartGlobe.pbas,822 :: procedure outdata ;SmartGlobe.pbas,824 :: = 1 then $3EEA $0103 MOVLB 3 $3EEC $511B MOVF _tup, 0, 1 $3EEE $0A01 XORLW 1 $3EF0 $E111 SmartGlobe_L_443 $3EF2 $ SmartGlobe_L_442: ;SmartGlobe.pbas,825 :: text1[yy] = cnt $3EF2 $0E2B MOVLW _text1 $3EF4 $6E02 MOVWF STACK_2, 0 $3EF6 $0E00 MOVLW @_text1 $3EF8 $6E03 MOVWF STACK_2+1, 0 $3EFA $C31C F000 MOVFF _yy, STACK_0 $3EFE $0E00 MOVLW 0 $3F00 $6E01 MOVWF STACK_0+1, 0 $3F02 $5000 MOVF STACK_0, 0, 0 $3F04 $2402 ADDWF STACK_2, 0, 0

end end end end end end end end end

sub if tup

BNZ

Appendix F

F-14

$6EE1 MOVWF FSR1Ptr, 0 $3F08 $5001 MOVF STACK_0+1, 0, 0 $3F0A $2003 ADDWFC STACK_2+1, 0, 0 $3F0C $6EE2 MOVWF FSR1Ptr+1, 0 $3F0E $C31A FFE6 MOVFF _cnt, POSTINC1 $3F12 $D04F SmartGlobe_L_444 ;SmartGlobe.pbas,826 :: $3F14 $ SmartGlobe_L_443: ;SmartGlobe.pbas,827 :: = 2 then $3F14 $511B MOVF _tup, 0, 1 $3F16 $0A02 XORLW 2 $3F18 $E111 SmartGlobe_L_446 $3F1A $ SmartGlobe_L_445: ;SmartGlobe.pbas,828 :: text2[yy] = cnt $3F1A $0E40 MOVLW _text2 $3F1C $6E02 MOVWF STACK_2, 0 $3F1E $0E00 MOVLW @_text2 $3F20 $6E03 MOVWF STACK_2+1, 0 $3F22 $C31C F000 MOVFF _yy, STACK_0 $3F26 $0E00 MOVLW 0 $3F28 $6E01 MOVWF STACK_0+1, 0 $3F2A $5000 MOVF STACK_0, 0, 0 $1404 $C003 F38E MOVFF STACK_0+3, FLOC_main+28 $1408 $C3A3 F000 MOVFF FLOC_main+49, STACK_0 $140C $C3A4 F001 MOVFF FLOC_main+50, STACK_0+1 $1410 $C3A5 F002 MOVFF FLOC_main+51, STACK_0+2 $1414 $C3A6 F003 MOVFF FLOC_main+52, STACK_0+3 $1418 $C38B F004 MOVFF FLOC_main+25, STACK_4 $141C $C38C F005 MOVFF FLOC_main+26, STACK_4+1 $1420 $C38D F006 MOVFF FLOC_main+27, STACK_4+2 $1424 $C38E F007 MOVFF FLOC_main+28, STACK_4+3 $1428 $ECC9 F01B _mul_32x32_fp $142C $C387 F004 MOVFF FLOC_main+21, STACK_4 $1430 $C388 F005 MOVFF FLOC_main+22, STACK_4+1

$3F06

BRA else if tup

BNZ

CALL

$C389 F006 MOVFF FLOC_main+23, STACK_4+2 $1438 $C38A F007 MOVFF FLOC_main+24, STACK_4+3 $143C $EC07 F013 _add_32x32_fp $1440 $C000 F387 MOVFF STACK_0, FLOC_main+21 $1444 $C001 F388 MOVFF STACK_0+1, FLOC_main+22 $1448 $C002 F389 MOVFF STACK_0+2, FLOC_main+23 $144C $C003 F38A MOVFF STACK_0+3, FLOC_main+24 $1450 $C387 F36D MOVFF FLOC_main+21, _iii $1454 $C388 F36E MOVFF FLOC_main+22, _iii+1 $1458 $C389 F36F MOVFF FLOC_main+23, _iii+2 $145C $C38A F370 MOVFF FLOC_main+24, _iii+3 ;SmartGlobe.pbas,1131 :: iii - bbb $1460 $C33F F004 MOVFF _bbb, STACK_4 $1464 $C340 F005 MOVFF _bbb+1, STACK_4+1 $1468 $C341 F006 MOVFF _bbb+2, STACK_4+2 $146C $C342 F007 MOVFF _bbb+3, STACK_4+3 $1470 $C387 F000 MOVFF FLOC_main+21, STACK_0 $1474 $C388 F001 MOVFF FLOC_main+22, STACK_0+1 $1478 $C389 F002 MOVFF FLOC_main+23, STACK_0+2 $147C $C38A F003 MOVFF FLOC_main+24, STACK_0+3 $1480 $EC71 F024 _sub_32x32_fp $1484 $C000 F30F MOVFF STACK_0, _ggg $1488 $C001 F310 MOVFF STACK_0+1, _ggg+1 $148C $C002 F311 MOVFF STACK_0+2, _ggg+2 $1490 $C003 F312 MOVFF STACK_0+3, _ggg+3 ;SmartGlobe.pbas,1132 :: 0.265988178 * ggg $1494 $0E9A MOVLW 154 $1496 $6E04 MOVWF STACK_4, 0 $1498 $0E2F MOVLW 47 $149A $6E05 MOVWF STACK_4+1, 0 $149C $0E08 MOVLW 8 $149E $6E06 MOVWF STACK_4+2, 0 $14A0 $0E7D MOVLW 125

$1434

CALL

ggg =

CALL

ggg =

Appendix F

F-15

$6E07 MOVWF STACK_4+3, 0 $14A4 $ECC9 F01B _mul_32x32_fp $14A8 $C000 F30F MOVFF STACK_0, _ggg $14AC $C001 F310 MOVFF STACK_0+1, _ggg+1 $14B0 $C002 F311 MOVFF STACK_0+2, _ggg+2 $14B4 $C003 F312 MOVFF STACK_0+3, _ggg+3 ;SmartGlobe.pbas,1133 :: = iii $14B8 $C387 F33F MOVFF FLOC_main+21, _bbb $14BC $C388 F340 MOVFF FLOC_main+22, _bbb+1 $14C0 $C389 F341 MOVFF FLOC_main+23, _bbb+2 $14C4 $C38A F342 MOVFF FLOC_main+24, _bbb+3 ;SmartGlobe.pbas,1134 :: eee[4]*100 + eee[5]*10 + eee[5]*1 + eee[7]*1 $14C8 $C39F F000 MOVFF FLOC_main+45, STACK_0 $14CC $C3A0 F001 MOVFF FLOC_main+46, STACK_0+1 $14D0 $C3A1 F002 MOVFF FLOC_main+47, STACK_0+2 $14D4 $C3A2 F003 MOVFF FLOC_main+48, STACK_0+3 $14D8 $C393 F004 MOVFF FLOC_main+33, STACK_4 $14DC $C394 F005 MOVFF FLOC_main+34, STACK_4+1 $14E0 $C395 F006 MOVFF FLOC_main+35, STACK_4+2 $14E4 $C396 F007 MOVFF FLOC_main+36, STACK_4+3 $14E8 $ECC9 F01B _mul_32x32_fp $14EC $C000 F387 MOVFF STACK_0, FLOC_main+21 $14F0 $C001 F388 MOVFF STACK_0+1, FLOC_main+22 $14F4 $C002 F389 MOVFF STACK_0+2, FLOC_main+23 $14F8 $C003 F38A MOVFF STACK_0+3, FLOC_main+24 $14FC $C39B F000 MOVFF FLOC_main+41, STACK_0 $1500 $C39C F001 MOVFF FLOC_main+42, STACK_0+1 $1504 $C39D F002 MOVFF FLOC_main+43, STACK_0+2 $1508 $C39E F003 MOVFF FLOC_main+44, STACK_0+3 $150C $C38F F004 MOVFF FLOC_main+29, STACK_4 $1510 $C390 F005 MOVFF FLOC_main+30, STACK_4+1 $1514 $C391 F006 MOVFF FLOC_main+31, STACK_4+2 $1518 $C392 F007 MOVFF FLOC_main+32, STACK_4+3

$14A2

$151C CALL $1520 $1524 $1528 $152C $1530 bbb $1534 $1538 $153C $1540 $1544 iii = $1548 $154C $1550 $1554 $1558 $155C $1560 $1564 $1568 CALL $156C $1570 $1574 $1578 $157C $1580 $1584 $1588 $158C $1590 $1594 $1598 $159C

$ECC9 F01B _mul_32x32_fp $C387 F004 MOVFF FLOC_main+21, STACK_4 $C388 F005 MOVFF FLOC_main+22, STACK_4+1 $C389 F006 MOVFF FLOC_main+23, STACK_4+2 $C38A F007 MOVFF FLOC_main+24, STACK_4+3 $EC07 F013 _add_32x32_fp $C000 F387 MOVFF STACK_0, FLOC_main+21 $C001 F388 MOVFF STACK_0+1, FLOC_main+22 $C002 F389 MOVFF STACK_0+2, FLOC_main+23 $C003 F38A MOVFF STACK_0+3, FLOC_main+24 $C39B F000 MOVFF FLOC_main+41, STACK_0 $C39C F001 MOVFF FLOC_main+42, STACK_0+1 $C39D F002 MOVFF FLOC_main+43, STACK_0+2 $C39E F003 MOVFF FLOC_main+44, STACK_0+3 $C38B F004 MOVFF FLOC_main+25, STACK_4 $C38C F005 MOVFF FLOC_main+26, STACK_4+1 $C38D F006 MOVFF FLOC_main+27, STACK_4+2 $C38E F007 MOVFF FLOC_main+28, STACK_4+3 $ECC9 F01B _mul_32x32_fp $C387 F004 MOVFF FLOC_main+21, STACK_4 $C388 F005 MOVFF FLOC_main+22, STACK_4+1 $C389 F006 MOVFF FLOC_main+23, STACK_4+2 $C38A F007 MOVFF FLOC_main+24, STACK_4+3 $EC07 F013 _add_32x32_fp $C000 F387 MOVFF STACK_0, FLOC_main+21 $C001 F388 MOVFF STACK_0+1, FLOC_main+22 $C002 F389 MOVFF STACK_0+2, FLOC_main+23 $C003 F38A MOVFF STACK_0+3, FLOC_main+24 $C397 F000 MOVFF FLOC_main+37, STACK_0 $C398 F001 MOVFF FLOC_main+38, STACK_0+1 $C399 F002 MOVFF FLOC_main+39, STACK_0+2 $C39A F003 MOVFF FLOC_main+40, STACK_0+3 $C38B F004 MOVFF FLOC_main+25, STACK_4

CALL

CALL

CALL

CALL

Appendix F

F-16

$C38C F005 MOVFF FLOC_main+26, STACK_4+1 $15A4 $C38D F006 MOVFF FLOC_main+27, STACK_4+2 $15A8 $C38E F007 MOVFF FLOC_main+28, STACK_4+3 $15AC $ECC9 F01B _mul_32x32_fp $15B0 $C387 F004 MOVFF FLOC_main+21, STACK_4 $15B4 $C388 F005 MOVFF FLOC_main+22, STACK_4+1 $15B8 $C389 F006 MOVFF FLOC_main+23, STACK_4+2 $15BC $C38A F007 MOVFF FLOC_main+24, STACK_4+3 $15C0 $EC07 F013 _add_32x32_fp $15C4 $C000 F387 MOVFF STACK_0, FLOC_main+21 $15C8 $C001 F388 MOVFF STACK_0+1, FLOC_main+22 $15CC $C002 F389 MOVFF STACK_0+2, FLOC_main+23 $15D0 $C003 F38A MOVFF STACK_0+3, FLOC_main+24 $15D4 $C387 F36D MOVFF FLOC_main+21, _iii $15D8 $C388 F36E MOVFF FLOC_main+22, _iii+1 $15DC $C389 F36F MOVFF FLOC_main+23, _iii+2 $15E0 $C38A F370 MOVFF FLOC_main+24, _iii+3 ;SmartGlobe.pbas,1135 :: = iii - ddd $15E4 $C343 F004 MOVFF _ddd, STACK_4 $15E8 $C344 F005 MOVFF _ddd+1, STACK_4+1 $15EC $C345 F006 MOVFF _ddd+2, STACK_4+2 $15F0 $C346 F007 MOVFF _ddd+3, STACK_4+3 $15F4 $C387 F000 MOVFF FLOC_main+21, STACK_0 $15F8 $C388 F001 MOVFF FLOC_main+22, STACK_0+1 $15FC $C389 F002 MOVFF FLOC_main+23, STACK_0+2 $1600 $C38A F003 MOVFF FLOC_main+24, STACK_0+3 $1604 $EC71 F024 _sub_32x32_fp $1608 $C000 F315 MOVFF STACK_0, _hhh $160C $C001 F316 MOVFF STACK_0+1, _hhh+1 $1610 $C002 F317 MOVFF STACK_0+2, _hhh+2 $1614 $C003 F318 MOVFF STACK_0+3, _hhh+3 ;SmartGlobe.pbas,1136 :: = 0.265988178 * hhh $1618 $0E9A MOVLW 154

$15A0

CALL

CALL

hhh

CALL

hhh

$6E04 MOVWF STACK_4, 0 $161C $0E2F MOVLW 47 $161E $6E05 MOVWF STACK_4+1, 0 $1620 $0E08 MOVLW 8 $1622 $6E06 MOVWF STACK_4+2, 0 $1624 $0E7D MOVLW 125 $1626 $6E07 MOVWF STACK_4+3, 0 $1628 $ECC9 F01B _mul_32x32_fp $162C $C000 F315 MOVFF STACK_0, _hhh $1630 $C001 F316 MOVFF STACK_0+1, _hhh+1 $1634 $C002 F317 MOVFF STACK_0+2, _hhh+2 $1638 $C003 F318 MOVFF STACK_0+3, _hhh+3 ;SmartGlobe.pbas,1137 :: = iii $163C $C387 F343 MOVFF FLOC_main+21, _ddd $1640 $C388 F344 MOVFF FLOC_main+22, _ddd+1 $1644 $C389 F345 MOVFF FLOC_main+23, _ddd+2 $1648 $C38A F346 MOVFF FLOC_main+24, _ddd+3 ;SmartGlobe.pbas,1138 :: motor $164C $EC82 F00D _motor ;SmartGlobe.pbas,1139 :: porte.0 = 1 $1650 $ SmartGlobe_L_582: $1650 $8084 PORTE, 0, 0 $1652 $ SmartGlobe_L_583: ;SmartGlobe.pbas,1140 :: $1652 $ SmartGlobe_L_584: ;SmartGlobe.pbas,1141 :: keypad_released $1652 $ECEF F023 _keypad_released $1656 $C000 F0CA MOVFF STACK_0, _kp ;SmartGlobe.pbas,1142 :: display2 $165A $EC9D F022 _display2 ;SmartGlobe.pbas,1143 :: until kp = 16 $165E $ SmartGlobe_L_585: $165E $0100 MOVLB 0 $1660 $51CA MOVF _kp, 0, 1 $1662 $0A10 XORLW 16

$161A

CALL

ddd

CALL

BSF do kp = CALL

CALL loop

Appendix F

F-17

$E101 SmartGlobe_L_587 $1666 $ SmartGlobe_L_588: $1666 $D001 SmartGlobe_L_586 $1668 $ SmartGlobe_L_587: $1668 $D7F4 SmartGlobe_L_584 $166A $ SmartGlobe_L_586: ;SmartGlobe.pbas,1144 :: porte.0 = 0 $166A $0100 MOVLB 0 $166C $9084 PORTE, 0, 0 $166E $ SmartGlobe_L_590: ;SmartGlobe.pbas,1145 :: 0 $166E $0103 MOVLB 3 $1670 $6B1E _kp3, 1 ;SmartGlobe.pbas,1146 :: lcd_cmd(lcd_clear) $1672 $0E01 MOVLW 1 $1674 $6FDA MOVWF FARG_Lcd_Cmd, 1 $1676 $EC95 F01A _lcd_cmd ;SmartGlobe.pbas,1147 :: "____" $167A $0E5F MOVLW 95 $167C $0100 MOVLB 0 $167E $6FC5 MOVWF _txt+0, 1 $1680 $6FC6 MOVWF _txt+1, 1 $1682 $6FC7 MOVWF _txt+2, 1 $1684 $6FC8 MOVWF _txt+3, 1 $1686 $6BC9 _txt+4, 1 ;SmartGlobe.pbas,1148 :: if $1688 $ SmartGlobe_L_576: $1688 $D23A SmartGlobe_L_570 ;SmartGlobe.pbas,1150 :: $168A $ SmartGlobe_L_569: ;SmartGlobe.pbas,1151 :: = 3 then $168A $0103 MOVLB 3 $168C $511E MOVF _kp3, 0, 1 $168E $0A03 XORLW 3 $1690 $A4D8 BTFSS STATUS, Z, 0 $1692 $D235 SmartGlobe_L_592 $1694 $ SmartGlobe_L_591:

$1664

BNZ BRA BRA

BCF kp3 =

CLRF

CALL txt =

CLRF end BRA else if kp3

BRA

;SmartGlobe.pbas,1152 :: 0 $1694 $0100 MOVLB 0 $1696 $6BCA _kp, 1 ;SmartGlobe.pbas,1153 :: display2 $1698 $EC9D F022 _display2 ;SmartGlobe.pbas,1154 :: kp = 0 $169C $ SmartGlobe_L_595: $169C $0100 MOVLB 0 $169E $51CA MOVF _kp, 0, 1 $16A0 $0A00 XORLW 0 $16A2 $E114 SmartGlobe_L_596 ;SmartGlobe.pbas,1155 :: Keypad_Released $16A4 $ECEF F023 _keypad_released $16A8 $C000 F0CA MOVFF STACK_0, _kp ;SmartGlobe.pbas,1156 :: = 0 then $16AC $0E00 MOVLW 0 $16AE $0103 MOVLB 3 $16B0 $1949 XORWF _kp2+1, 0, 1 $16B2 $E102 L_main_14 $16B4 $0E00 MOVLW 0 $16B6 $1948 XORWF _kp2, 0, 1 $16B8 $ L_main_14: $16B8 $E102 SmartGlobe_L_600 $16BA $ SmartGlobe_L_599: ;SmartGlobe.pbas,1157 :: $16BA $0000 $16BC $D005 SmartGlobe_L_601 ;SmartGlobe.pbas,1158 :: $16BE $ SmartGlobe_L_600: ;SmartGlobe.pbas,1159 :: dec(kp2) $16BE $0103 MOVLB 3 $16C0 $0E01 MOVLW 1 $16C2 $5F48 SUBWF _kp2, 1, 1 $16C4 $0E00 MOVLW 0 $16C6 $5B49 SUBWFB _kp2+1, 1, 1 ;SmartGlobe.pbas,1160 :: if $16C8 $ SmartGlobe_L_601:

kp =

CLRF

CALL while

BNZ kp = CALL

if kp2

BNZ

BNZ nop NOP BRA else

end

Appendix F

F-18

$0103 MOVLB 3 $16CA $D7E8 SmartGlobe_L_595 $16CC $ SmartGlobe_L_596: ;SmartGlobe.pbas,1164 :: 4 kp = 65 'A' $16CC $ SmartGlobe_L_604: $16CC $0103 MOVLB 3 $16CE $0100 MOVLB 0 $16D0 $51CA MOVF _kp, 0, 1 $16D2 $0A04 XORLW 4 $16D4 $E103 SmartGlobe_L_605 $16D6 $ SmartGlobe_L_603: $16D6 $0E41 MOVLW 65 $16D8 $6FCA MOVWF _kp, 1 $16DA $D04A SmartGlobe_L_602 $16DC $ SmartGlobe_L_605: ;SmartGlobe.pbas,1165 :: 5 kp = 52 '4' $16DC $ SmartGlobe_L_607: $16DC $51CA MOVF _kp, 0, 1 $16DE $0A05 XORLW 5 $16E0 $E103 SmartGlobe_L_608 $16E2 $ SmartGlobe_L_606: $16E2 $0E34 MOVLW 52 $16E4 $6FCA MOVWF _kp, 1 $16E6 $D044 SmartGlobe_L_602 $16E8 $ SmartGlobe_L_608: ;SmartGlobe.pbas,1166 :: 6 kp = 53 '5' $16E8 $ SmartGlobe_L_610: $16E8 $51CA MOVF _kp, 0, 1 $16EA $0A06 XORLW 6 $16EC $E103 SmartGlobe_L_611 $16EE $ SmartGlobe_L_609: $16EE $0E35 MOVLW 53 $16F0 $6FCA MOVWF _kp, 1 $16F2 $D03E SmartGlobe_L_602 $16F4 $ SmartGlobe_L_611: ;SmartGlobe.pbas,1167 :: 7 kp = 54 '6' $16F4 $ SmartGlobe_L_613: $16F4 $51CA MOVF _kp, 0, 1

$16C8

BRA case

BNZ

BRA case

BNZ

BRA case

BNZ

BRA case

$0A07 XORLW 7 $16F8 $E103 SmartGlobe_L_614 $16FA $ SmartGlobe_L_612: $16FA $0E36 MOVLW 54 $16FC $6FCA MOVWF _kp, 1 $16FE $D038 SmartGlobe_L_602 $1700 $ SmartGlobe_L_614: ;SmartGlobe.pbas,1168 :: 8 kp = 66 'B' $1700 $ SmartGlobe_L_616: $1700 $51CA MOVF _kp, 0, 1 $1702 $0A08 XORLW 8 $1704 $E103 SmartGlobe_L_617 $1706 $ SmartGlobe_L_615: $1706 $0E42 MOVLW 66 $1708 $6FCA MOVWF _kp, 1 $170A $D032 SmartGlobe_L_602 $170C $ SmartGlobe_L_617: ;SmartGlobe.pbas,1169 :: 9 kp = 55 '7' $170C $ SmartGlobe_L_619: $170C $51CA MOVF _kp, 0, 1 $170E $0A09 XORLW 9 $1710 $E103 SmartGlobe_L_620 $1712 $ SmartGlobe_L_618: $1712 $0E37 MOVLW 55 $1714 $6FCA MOVWF _kp, 1 $1716 $D02C SmartGlobe_L_602 $1718 $ SmartGlobe_L_620: ;SmartGlobe.pbas,1170 :: 10 kp = 56 '8' $1718 $ SmartGlobe_L_622: $1718 $51CA MOVF _kp, 0, 1 $171A $0A0A XORLW 10 $171C $E103 SmartGlobe_L_623 $171E $ SmartGlobe_L_621: $171E $0E38 MOVLW 56 $1720 $6FCA MOVWF _kp, 1 $1722 $D026 SmartGlobe_L_602 $1724 $ SmartGlobe_L_623: ;SmartGlobe.pbas,1171 :: 11 kp = 57 '9' $1724 $ SmartGlobe_L_625:

$16F6

BNZ

BRA case

BNZ

BRA case

BNZ

BRA case

BNZ

BRA case

Appendix F

F-19

$51CA MOVF _kp, 0, 1 $1726 $0A0B XORLW 11 $1728 $E103 SmartGlobe_L_626 $172A $ SmartGlobe_L_624: $172A $0E39 MOVLW 57 $172C $6FCA MOVWF _kp, 1 $172E $D020 SmartGlobe_L_602 $1730 $ SmartGlobe_L_626: ;SmartGlobe.pbas,1172 :: 12 kp = 67 'C' $1730 $ SmartGlobe_L_628: $1730 $51CA MOVF _kp, 0, 1 $1732 $0A0C XORLW 12 $1734 $E103 SmartGlobe_L_629 $1736 $ SmartGlobe_L_627: $1736 $0E43 MOVLW 67 $1738 $6FCA MOVWF _kp, 1 $173A $D01A SmartGlobe_L_602 $173C $ SmartGlobe_L_629: ;SmartGlobe.pbas,1173 :: 13 kp = 42 '*' $173C $ SmartGlobe_L_631: $173C $51CA MOVF _kp, 0, 1 $173E $0A0D XORLW 13 $1740 $E103 SmartGlobe_L_632 $1742 $ SmartGlobe_L_630: $1742 $0E2A MOVLW 42 $1744 $6FCA MOVWF _kp, 1 $1746 $D014 SmartGlobe_L_602 $1748 $ SmartGlobe_L_632: ;SmartGlobe.pbas,1174 :: 14 kp = 48 '0' $1748 $ SmartGlobe_L_634: $1748 $51CA MOVF _kp, 0, 1 $174A $0A0E XORLW 14 $174C $E103 SmartGlobe_L_635 $174E $ SmartGlobe_L_633: $174E $0E30 MOVLW 48 $1750 $6FCA MOVWF _kp, 1 $1752 $D00E SmartGlobe_L_602 $1754 $ SmartGlobe_L_635:

$1724

BNZ

BRA case

BNZ

BRA case

BNZ

BRA case

BNZ

BRA

;SmartGlobe.pbas,1175 :: 15 kp = 35 '#' $1754 $ SmartGlobe_L_637: $1754 $51CA MOVF _kp, 0, 1 $1756 $0A0F XORLW 15 $1758 $E103 SmartGlobe_L_638 $175A $ SmartGlobe_L_636: $175A $0E23 MOVLW 35 $175C $6FCA MOVWF _kp, 1 $175E $D008 SmartGlobe_L_602 $1760 $ SmartGlobe_L_638: ;SmartGlobe.pbas,1176 :: 16 kp = 68 'D' $1760 $ SmartGlobe_L_640: $1760 $51CA MOVF _kp, 0, 1 $1762 $0A10 XORLW 16 $1764 $E103 SmartGlobe_L_641 $1766 $ SmartGlobe_L_639: $1766 $0E44 MOVLW 68 $1768 $6FCA MOVWF _kp, 1 $176A $D002 SmartGlobe_L_602 $176C $ SmartGlobe_L_641: ;SmartGlobe.pbas,1177 :: else kp = kp + 48 $176C $0E30 MOVLW 48 $176E $27CA ADDWF _kp, 1, 1 $1770 $ SmartGlobe_L_602: ;SmartGlobe.pbas,1180 :: = 66 then $1770 $51CA MOVF _kp, 0, 1 $1772 $0A42 XORLW 66 $1774 $E134 SmartGlobe_L_643 $1776 $ SmartGlobe_L_642: ;SmartGlobe.pbas,1182 :: = 5 then $1776 $0103 MOVLB 3 $1778 $511B MOVF _tup, 0, 1 $177A $0A05 XORLW 5 $177C $E104 SmartGlobe_L_646 $177E $ SmartGlobe_L_645: ;SmartGlobe.pbas,1183 :: 1 $177E $0E01 MOVLW 1

case

BNZ

BRA case

BNZ

BRA case

if kp

BNZ if tup

BNZ tup =

Appendix F

F-20

$6F1B MOVWF _tup, 1 $1782 $EFC4 F00B GOTO SmartGlobe_L_647 ;SmartGlobe.pbas,1184 :: $1786 $ SmartGlobe_L_646: ;SmartGlobe.pbas,1185 :: inc(tup) $1786 $2B1B _tup, 1, 1 ;SmartGlobe.pbas,1186 :: if $1788 $ SmartGlobe_L_647: ;SmartGlobe.pbas,1188 :: = 1 then $1788 $511B MOVF _tup, 0, 1 $178A $0A01 XORLW 1 $178C $E104 SmartGlobe_L_649 $178E $ SmartGlobe_L_648: ;SmartGlobe.pbas,1189 :: 0 $178E $6B4B _yy1, 1 ;SmartGlobe.pbas,1190 :: 19 $1790 $0E13 MOVLW 19 $1792 $6F4C MOVWF _yy2, 1 $1794 $D01F SmartGlobe_L_650 ;SmartGlobe.pbas,1191 :: $1796 $ SmartGlobe_L_649: ;SmartGlobe.pbas,1192 :: = 2 then $1796 $511B MOVF _tup, 0, 1 $1798 $0A02 XORLW 2 $179A $E105 SmartGlobe_L_652 $179C $ SmartGlobe_L_651: ;SmartGlobe.pbas,1193 :: 5 $179C $0E05 MOVLW 5 $179E $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1194 :: 7 $17A0 $0E07 MOVLW 7 $17A2 $6F4C MOVWF _yy2, 1 $17A4 $D017 SmartGlobe_L_653 ;SmartGlobe.pbas,1195 :: $17A6 $ SmartGlobe_L_652: ;SmartGlobe.pbas,1196 :: = 3 then $17A6 $511B MOVF _tup, 0, 1

$1780

else

INCF end if tup

BNZ yy1 = CLRF yy2 =

BRA else if tup

BNZ yy1 =

yy2 =

BRA else if tup

$0A03 XORLW 3 $17AA $E105 SmartGlobe_L_655 $17AC $ SmartGlobe_L_654: ;SmartGlobe.pbas,1197 :: 16 $17AC $0E10 MOVLW 16 $17AE $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1198 :: 18 $17B0 $0E12 MOVLW 18 $17B2 $6F4C MOVWF _yy2, 1 $17B4 $D00F SmartGlobe_L_656 ;SmartGlobe.pbas,1199 :: $17B6 $ SmartGlobe_L_655: ;SmartGlobe.pbas,1200 :: = 4 then $17B6 $511B MOVF _tup, 0, 1 $17B8 $0A04 XORLW 4 $17BA $E105 SmartGlobe_L_658 $17BC $ SmartGlobe_L_657: ;SmartGlobe.pbas,1201 :: 5 $17BC $0E05 MOVLW 5 $17BE $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1202 :: 19 $17C0 $0E13 MOVLW 19 $17C2 $6F4C MOVWF _yy2, 1 $17C4 $D007 SmartGlobe_L_659 ;SmartGlobe.pbas,1203 :: $17C6 $ SmartGlobe_L_658: ;SmartGlobe.pbas,1204 :: = 5 then $17C6 $511B MOVF _tup, 0, 1 $17C8 $0A05 XORLW 5 $17CA $E104 SmartGlobe_L_661 $17CC $ SmartGlobe_L_660: ;SmartGlobe.pbas,1205 :: 5 $17CC $0E05 MOVLW 5 $17CE $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1206 :: 19 $17D0 $0E13 MOVLW 19

$17A8

BNZ yy1 =

yy2 =

BRA else if tup

BNZ yy1 =

yy2 =

BRA else if tup

BNZ yy1 =

yy2 =

Appendix F

F-21

$6F4C MOVWF _yy2, 1 $17D4 $ SmartGlobe_L_661: ;SmartGlobe.pbas,1207 :: if $17D4 $ SmartGlobe_L_662: ;SmartGlobe.pbas,1208 :: if $17D4 $ SmartGlobe_L_659: ;SmartGlobe.pbas,1209 :: if $17D4 $ SmartGlobe_L_656: ;SmartGlobe.pbas,1210 :: if $17D4 $ SmartGlobe_L_653: ;SmartGlobe.pbas,1211 :: if $17D4 $ SmartGlobe_L_650: ;SmartGlobe.pbas,1212 :: 1 $17D4 $0E01 MOVLW 1 $17D6 $6F4A MOVWF _kp4, 1 ;SmartGlobe.pbas,1213 :: yy1 $17D8 $C34B F31C MOVFF _yy1, _yy $17DC $D190 SmartGlobe_L_644 ;SmartGlobe.pbas,1215 :: $17DE $ SmartGlobe_L_643: ;SmartGlobe.pbas,1216 :: = 68 then $17DE $0100 MOVLB 0 $17E0 $51CA MOVF _kp, 0, 1 $17E2 $0A44 XORLW 68 $17E4 $A4D8 BTFSS STATUS, Z, 0 $17E6 $D0AC SmartGlobe_L_664 $17E8 $ SmartGlobe_L_663: ;SmartGlobe.pbas,1217 :: =0 $17E8 $0103 MOVLB 3 $17EA $6B1D _tmp, 1 ;SmartGlobe.pbas,1218 :: unsubstitute $17EC $EC5D F01C _unsubstitute ;SmartGlobe.pbas,1219 :: 0 $17F0 $0100 MOVLB 0 $17F2 $6BCA _kp, 1 ;SmartGlobe.pbas,1220 :: tmp = 0 then $17F4 $0103 MOVLB 3

$17D2

end end end end end kp4 =

yy =

BRA else if kp

BRA tmp

CLRF

CALL kp =

CLRF if

$511D MOVF _tmp, 0, 1 $17F8 $0A00 XORLW 0 $17FA $E157 SmartGlobe_L_667 $17FC $ SmartGlobe_L_666: ;SmartGlobe.pbas,1221 :: Lcd_Cmd(Lcd_clear) $17FC $0E01 MOVLW 1 $17FE $6FDA MOVWF FARG_Lcd_Cmd, 1 $1800 $EC95 F01A _lcd_cmd ;SmartGlobe.pbas,1222 :: Lcd_out(1, 1, "Please wait...... ") $1804 $0E01 MOVLW 1 $1806 $0103 MOVLB 3 $1808 $6FD4 MOVWF FARG_Lcd_Out, 1 $180A $0E01 MOVLW 1 $180C $6FD5 MOVWF FARG_Lcd_Out+1, 1 $180E $0E50 MOVLW 80 $1810 $6F72 MOVWF ?main_Local_Text+0, 1 $1812 $0E6C MOVLW 108 $1814 $6F73 MOVWF ?main_Local_Text+1, 1 $1816 $0E65 MOVLW 101 $1818 $6F74 MOVWF ?main_Local_Text+2, 1 $181A $0E61 MOVLW 97 $181C $6F75 MOVWF ?main_Local_Text+3, 1 $181E $0E73 MOVLW 115 $1820 $6F76 MOVWF ?main_Local_Text+4, 1 $1822 $0E65 MOVLW 101 $1824 $6F77 MOVWF ?main_Local_Text+5, 1 $1826 $0E20 MOVLW 32 $1828 $6F78 MOVWF ?main_Local_Text+6, 1 $182A $0E77 MOVLW 119 $182C $6F79 MOVWF ?main_Local_Text+7, 1 $182E $0E61 MOVLW 97 $1830 $6F7A MOVWF ?main_Local_Text+8, 1 $1832 $0E69 MOVLW 105

$17F6

BNZ

CALL

Appendix F

F-22

$6F7B MOVWF ?main_Local_Text+9, 1 $1836 $0E74 MOVLW 116 $1838 $6F7C MOVWF ?main_Local_Text+10, 1 $183A $0E2E MOVLW 46 $183C $6F7D MOVWF ?main_Local_Text+11, 1 $183E $0E2E MOVLW 46 $1840 $6F7E MOVWF ?main_Local_Text+12, 1 $1842 $0E2E MOVLW 46 $1844 $6F7F MOVWF ?main_Local_Text+13, 1 $1846 $0E2E MOVLW 46 $1848 $6F80 MOVWF ?main_Local_Text+14, 1 $184A $0E2E MOVLW 46 $184C $6F81 MOVWF ?main_Local_Text+15, 1 $184E $0E2E MOVLW 46 $1850 $6F82 MOVWF ?main_Local_Text+16, 1 $1852 $0E20 MOVLW 32 $1854 $6F83 MOVWF ?main_Local_Text+17, 1 $1856 $0E20 MOVLW 32 $1858 $6F84 MOVWF ?main_Local_Text+18, 1 $185A $0E20 MOVLW 32 $185C $6F85 MOVWF ?main_Local_Text+19, 1 $185E $6B86 CLRF ?main_Local_Text+20, 1 $1860 $0E72 MOVLW ?main_Local_Text $1862 $6FD6 MOVWF FARG_Lcd_Out+2, 1 $1864 $0E03 MOVLW @?main_Local_Text $1866 $6FD7 MOVWF FARG_Lcd_Out+3, 1 $1868 $EC95 F020 CALL _lcd_out ;SmartGlobe.pbas,1223 :: delay_ms(500) $186C $0E03 MOVLW 3 $186E $6E0C MOVWF STACK_12, 0 $1870 $0EFF MOVLW 255 $18BE $6FB3 MOVWF FARG_Mmc_Write_Sector+4, 1 $18C0 $0E00 MOVLW @_data

$1834

$6FB4 MOVWF FARG_Mmc_Write_Sector+5, 1 $18C4 $EC35 F01B _mmc_write_sector $18C8 $C000 F31D MOVFF STACK_0, _tmp ;SmartGlobe.pbas,1226 :: tmp > 0 then $18CC $5000 MOVF STACK_0, 0, 0 $18CE $0800 SUBLW 0 $18D0 $E21C SmartGlobe_L_670 $18D2 $ SmartGlobe_L_669: ;SmartGlobe.pbas,1227 :: $18D2 $ SmartGlobe_L_672: ;SmartGlobe.pbas,1228 :: $18D2 $EC32 F01E _mali ;SmartGlobe.pbas,1229 :: keypad_released $18D6 $ECEF F023 _keypad_released $18DA $C000 F0CA MOVFF STACK_0, _kp ;SmartGlobe.pbas,1230 :: until kp = 16 $18DE $ SmartGlobe_L_673: $18DE $0100 MOVLB 0 $18E0 $51CA MOVF _kp, 0, 1 $18E2 $0A10 XORLW 16 $18E4 $E101 SmartGlobe_L_675 $18E6 $ SmartGlobe_L_676: $18E6 $D001 SmartGlobe_L_674 $18E8 $ SmartGlobe_L_675: $18E8 $D7F4 SmartGlobe_L_672 $18EA $ SmartGlobe_L_674: ;SmartGlobe.pbas,1231 :: lcd_cmd(lcd_clear) $18EA $0E01 MOVLW 1 $18EC $0103 MOVLB 3 $18EE $6FDA MOVWF FARG_Lcd_Cmd, 1 $18F0 $EC95 F01A _lcd_cmd ;SmartGlobe.pbas,1232 :: 1 $18F4 $0E01 MOVLW 1 $18F6 $0103 MOVLB 3 $18F8 $6F1E MOVWF _kp3, 1 ;SmartGlobe.pbas,1233 :: "____" $18FA $0E5F MOVLW 95

$18C2

CALL

if

BC do mali CALL kp = CALL

loop

BNZ BRA BRA

CALL kp3 =

txt =

Appendix F

F-23

$0100 MOVLB 0 $18FE $6FC5 MOVWF _txt+0, 1 $1900 $6FC6 MOVWF _txt+1, 1 $1902 $6FC7 MOVWF _txt+2, 1 $1904 $6FC8 MOVWF _txt+3, 1 $1906 $6BC9 _txt+4, 1 $1908 $D019 SmartGlobe_L_671 ;SmartGlobe.pbas,1234 :: $190A $ SmartGlobe_L_670: ;SmartGlobe.pbas,1235 :: lcd_cmd(lcd_clear) $190A $0E01 MOVLW 1 $190C $0103 MOVLB 3 $190E $6FDA MOVWF FARG_Lcd_Cmd, 1 $1910 $EC95 F01A _lcd_cmd ;SmartGlobe.pbas,1236 :: = "" $1914 $6A2B _text1+0, 0 ;SmartGlobe.pbas,1237 :: = "" $1916 $6A40 _text2+0, 0 ;SmartGlobe.pbas,1238 :: = "" $1918 $6A55 _text3+0, 0 ;SmartGlobe.pbas,1239 :: = "" $191A $0100 MOVLB 0 $191C $6B6A _text4+0, 1 ;SmartGlobe.pbas,1240 :: Lcd_Cmd(Lcd_Clear) $191E $0E01 MOVLW 1 $1920 $0103 MOVLB 3 $1922 $6FDA MOVWF FARG_Lcd_Cmd, 1 $1924 $EC95 F01A _lcd_cmd ;SmartGlobe.pbas,1241 :: "____" $1928 $0E5F MOVLW 95 $192A $0100 MOVLB 0 $192C $6FC5 MOVWF _txt+0, 1 $192E $6FC6 MOVWF _txt+1, 1 $1930 $6FC7 MOVWF _txt+2, 1

$18FC

CLRF BRA else

CALL text1 CLRF text2 CLRF text3 CLRF text4

CLRF

CALL txt =

$6FC8 MOVWF _txt+3, 1 $1934 $6BC9 _txt+4, 1 ;SmartGlobe.pbas,1242 :: 1 $1936 $0E01 MOVLW 1 $1938 $0103 MOVLB 3 $193A $6F1E MOVWF _kp3, 1 ;SmartGlobe.pbas,1243 :: if $193C $ SmartGlobe_L_671: $193C $0103 MOVLB 3 $193E $D0DF SmartGlobe_L_665 ;SmartGlobe.pbas,1244 :: $1940 $ SmartGlobe_L_664: ;SmartGlobe.pbas,1245 :: = 65 then $1940 $0100 MOVLB 0 $1942 $51CA MOVF _kp, 0, 1 $1944 $0A41 XORLW 65 $1946 $E10C SmartGlobe_L_678 $1948 $ SmartGlobe_L_677: ;SmartGlobe.pbas,1247 :: porte.2 = 1 then $1948 $6A04 STACK_4, 0 $194A $B484 BTFSC PORTE, 2, 0 $194C $2A04 STACK_4, 1, 0 $194E $5004 MOVF STACK_4, 0, 0 $1950 $0A01 XORLW 1 $1952 $E102 SmartGlobe_L_681 $1954 $ SmartGlobe_L_680: ;SmartGlobe.pbas,1248 :: porte.2 = 0 $1954 $9484 PORTE, 2, 0 $1956 $ SmartGlobe_L_684: $1956 $D002 SmartGlobe_L_682 ;SmartGlobe.pbas,1249 :: $1958 $ SmartGlobe_L_681: ;SmartGlobe.pbas,1250 :: porte.2 = 1 $1958 $ SmartGlobe_L_685: $1958 $0100 MOVLB 0 $195A $8484 PORTE, 2, 0 $195C $ SmartGlobe_L_686: ;SmartGlobe.pbas,1251 :: if

$1932

CLRF kp3 =

end

BRA else if kp

BNZ if CLRF

INCF

BNZ

BCF BRA else

BSF end

Appendix F

F-24

$ SmartGlobe_L_682: $0100 MOVLB 0 $195E $D0CF SmartGlobe_L_679 ;SmartGlobe.pbas,1253 :: $1960 $ SmartGlobe_L_678: ;SmartGlobe.pbas,1254 :: = 67 then $1960 $51CA MOVF _kp, 0, 1 $1962 $0A43 XORLW 67 $1964 $A4D8 BTFSS STATUS, Z, 0 $1966 $D089 SmartGlobe_L_688 $1968 $ SmartGlobe_L_687: ;SmartGlobe.pbas,1256 :: = 1 then $1968 $0103 MOVLB 3 $196A $511B MOVF _tup, 0, 1 $196C $0A01 XORLW 1 $196E $E11A SmartGlobe_L_691 $1970 $ SmartGlobe_L_690: ;SmartGlobe.pbas,1257 :: 0 $1970 $6B4B _yy1, 1 ;SmartGlobe.pbas,1258 :: 19 $1972 $0E13 MOVLW 19 $1974 $6F4C MOVWF _yy2, 1 ;SmartGlobe.pbas,1259 :: =" " $1976 $0E20 MOVLW 32 $1978 $6E2B MOVWF _text1+0, 0 $197A $6E2C MOVWF _text1+1, 0 $197C $6E2D MOVWF _text1+2, 0 $197E $6E2E MOVWF _text1+3, 0 $1980 $6E2F MOVWF _text1+4, 0 $1982 $6E30 MOVWF _text1+5, 0 $1984 $6E31 MOVWF _text1+6, 0 $1986 $6E32 MOVWF _text1+7, 0 $1988 $6E33 MOVWF _text1+8, 0 $198A $6E34 MOVWF _text1+9, 0 $198C $6E35 MOVWF _text1+10, 0

$195C $195C

BRA else if kp

BRA if tup

BNZ yy1 = CLRF yy2 =

text1

$6E36 MOVWF _text1+11, 0 $1990 $6E37 MOVWF _text1+12, 0 $1992 $6E38 MOVWF _text1+13, 0 $1994 $6E39 MOVWF _text1+14, 0 $1996 $6E3A MOVWF _text1+15, 0 $1998 $6E3B MOVWF _text1+16, 0 $199A $6E3C MOVWF _text1+17, 0 $199C $6E3D MOVWF _text1+18, 0 $199E $6E3E MOVWF _text1+19, 0 $19A0 $6A3F _text1+20, 0 $19A2 $D062 SmartGlobe_L_692 ;SmartGlobe.pbas,1260 :: $19A4 $ SmartGlobe_L_691: ;SmartGlobe.pbas,1261 :: = 2 then $19A4 $511B MOVF _tup, 0, 1 $19A6 $0A02 XORLW 2 $19A8 $E10B SmartGlobe_L_694 $19AA $ SmartGlobe_L_693: ;SmartGlobe.pbas,1262 :: 5 $19AA $0E05 MOVLW 5 $19AC $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1263 :: 8 $19AE $0E08 MOVLW 8 $19B0 $6F4C MOVWF _yy2, 1 ;SmartGlobe.pbas,1264 :: text2[5] = "" $19B2 $0E30 MOVLW 48 $19B4 $6E45 MOVWF _text2+5, 0 ;SmartGlobe.pbas,1265 :: text2[6] = "" $19B6 $0E30 MOVLW 48 $19B8 $6E46 MOVWF _text2+6, 0 ;SmartGlobe.pbas,1266 :: text2[7] = "" $19BA $0E30 MOVLW 48 $19BC $6E47 MOVWF _text2+7, 0 $19BE $D054 SmartGlobe_L_695 ;SmartGlobe.pbas,1267 ::

$198E

CLRF BRA else if tup

BNZ yy1 =

yy2 =

BRA else

Appendix F

F-25

$19C0 $ SmartGlobe_L_694: ;SmartGlobe.pbas,1268 :: = 3 then $19C0 $511B MOVF _tup, 0, 1 $19C2 $0A03 XORLW 3 $19C4 $E10B SmartGlobe_L_697 $19C6 $ SmartGlobe_L_696: ;SmartGlobe.pbas,1269 :: 16 $19C6 $0E10 MOVLW 16 $19C8 $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1270 :: 19 $19CA $0E13 MOVLW 19 $19CC $6F4C MOVWF _yy2, 1 ;SmartGlobe.pbas,1271 :: text2[16] = "" $19CE $0E30 MOVLW 48 $19D0 $6E50 MOVWF _text2+16, 0 ;SmartGlobe.pbas,1272 :: text2[17] = "" $19D2 $0E30 MOVLW 48 $19D4 $6E51 MOVWF _text2+17, 0 ;SmartGlobe.pbas,1273 :: text2[18] = "" $19D6 $0E30 MOVLW 48 $19D8 $6E52 MOVWF _text2+18, 0 $19DA $D046 SmartGlobe_L_698 ;SmartGlobe.pbas,1274 :: $19DC $ SmartGlobe_L_697: ;SmartGlobe.pbas,1275 :: = 4 then $19DC $511B MOVF _tup, 0, 1 $19DE $0A04 XORLW 4 $19E0 $E120 SmartGlobe_L_700 $19E2 $ SmartGlobe_L_699: ;SmartGlobe.pbas,1276 :: 5 $19E2 $0E05 MOVLW 5 $19E4 $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1277 :: 19 $19E6 $0E13 MOVLW 19 $19E8 $6F4C MOVWF _yy2, 1

if tup

BNZ yy1 =

yy2 =

BRA else if tup

BNZ yy1 =

yy2 =

;SmartGlobe.pbas,1278 :: = "Cap: " $19EA $0E43 MOVLW 67 $19EC $6E55 MOVWF _text3+0, 0 $19EE $0E61 MOVLW 97 $19F0 $6E56 MOVWF _text3+1, 0 $19F2 $0E70 MOVLW 112 $19F4 $6E57 MOVWF _text3+2, 0 $19F6 $0E3A MOVLW 58 $19F8 $6E58 MOVWF _text3+3, 0 $19FA $0E20 MOVLW 32 $19FC $6E59 MOVWF _text3+4, 0 $19FE $6E5A MOVWF _text3+5, 0 $1A00 $6E5B MOVWF _text3+6, 0 $1A02 $6E5C MOVWF _text3+7, 0 $1A04 $6E5D MOVWF _text3+8, 0 $1A06 $6E5E MOVWF _text3+9, 0 $1A08 $6E5F MOVWF _text3+10, 0 $1A0A $0100 MOVLB 0 $1A0C $6F60 MOVWF _text3+11, 1 $1A0E $6F61 MOVWF _text3+12, 1 $1A10 $6F62 MOVWF _text3+13, 1 $1A12 $6F63 MOVWF _text3+14, 1 $1A14 $6F64 MOVWF _text3+15, 1 $1A16 $6F65 MOVWF _text3+16, 1 $1A18 $6F66 MOVWF _text3+17, 1 $1A1A $6F67 MOVWF _text3+18, 1 $1A1C $6F68 MOVWF _text3+19, 1 $1A1E $6B69 _text3+20, 1 $1A20 $D023 SmartGlobe_L_701 ;SmartGlobe.pbas,1279 :: $1A22 $ SmartGlobe_L_700: ;SmartGlobe.pbas,1280 :: = 5 then $1A22 $0103 MOVLB 3 $1A24 $511B MOVF _tup, 0, 1

text3

CLRF BRA else if tup

Appendix F

F-26

$0A05 XORLW 5 $1A28 $E11F SmartGlobe_L_703 $1A2A $ SmartGlobe_L_702: ;SmartGlobe.pbas,1281 :: 5 $1A2A $0E05 MOVLW 5 $1A2C $6F4B MOVWF _yy1, 1 ;SmartGlobe.pbas,1282 :: 19 $1A2E $0E13 MOVLW 19 $1A30 $6F4C MOVWF _yy2, 1 ;SmartGlobe.pbas,1283 :: = "Cur: " $1A32 $0E43 MOVLW 67 $1A34 $0100 MOVLB 0 $1A36 $6F6A MOVWF _text4+0, 1 $1A38 $0E75 MOVLW 117 $1A3A $6F6B MOVWF _text4+1, 1 $1A3C $0E72 MOVLW 114 $1A3E $6F6C MOVWF _text4+2, 1 $1A40 $0E3A MOVLW 58 $1A42 $6F6D MOVWF _text4+3, 1 $1A44 $0E20 MOVLW 32 $1A46 $6F6E MOVWF _text4+4, 1 $1A48 $6F6F MOVWF _text4+5, 1 $1A4A $6F70 MOVWF _text4+6, 1 $1A4C $6F71 MOVWF _text4+7, 1 $1A4E $6F72 MOVWF _text4+8, 1 $1A50 $6F73 MOVWF _text4+9, 1 $1A52 $6F74 MOVWF _text4+10, 1 $1A54 $6F75 MOVWF _text4+11, 1 $1A56 $6F76 MOVWF _text4+12, 1 $1A58 $6F77 MOVWF _text4+13, 1 $1A5A $6F78 MOVWF _text4+14, 1 $1A5C $6F79 MOVWF _text4+15, 1 $1A5E $6F7A MOVWF _text4+16, 1

$1A26

BNZ yy1 =

yy2 =

text4

$6F7B MOVWF _text4+17, 1 $1A62 $6F7C MOVWF _text4+18, 1 $1A64 $6F7D MOVWF _text4+19, 1 $1A66 $6B7E _text4+20, 1 $1A68 $ SmartGlobe_L_703: ;SmartGlobe.pbas,1284 :: if $1A68 $ SmartGlobe_L_704: ;SmartGlobe.pbas,1285 :: if $1A68 $ SmartGlobe_L_701: ;SmartGlobe.pbas,1286 :: if $1A68 $ SmartGlobe_L_698: ;SmartGlobe.pbas,1287 :: if $1A68 $ SmartGlobe_L_695: ;SmartGlobe.pbas,1288 :: if $1A68 $ SmartGlobe_L_692: ;SmartGlobe.pbas,1289 :: 1 $1A68 $0100 MOVLB 0 $1A6A $0E01 MOVLW 1 $1A6C $0103 MOVLB 3 $1A6E $6F4A MOVWF _kp4, 1 ;SmartGlobe.pbas,1290 :: yy1 $1A70 $C34B F31C MOVFF _yy1, _yy ;SmartGlobe.pbas,1291 :: 0 $1A74 $6B19 _yy3, 1 ;SmartGlobe.pbas,1292 :: 0 $1A76 $6B71 _kp1, 1 $1A78 $D042 SmartGlobe_L_689 ;SmartGlobe.pbas,1294 :: $1A7A $ SmartGlobe_L_688: ;SmartGlobe.pbas,1297 :: = kp1 then $1A7A $0100 MOVLB 0 $1A7C $51CA MOVF _kp, 0, 1 $1A7E $0103 MOVLB 3 $1A80 $1971 XORWF _kp1, 0, 1 $1A82 $E120 SmartGlobe_L_706 $1A84 $ SmartGlobe_L_705: ;SmartGlobe.pbas,1299 :: = 9 then

$1A60

CLRF end end end end end kp4 =

yy =

yy3 = CLRF kp1 = CLRF BRA else if kp

BNZ if yy3

Appendix F

F-27

$5119 MOVF _yy3, 0, 1 $1A86 $0A09 XORLW 9 $1A88 $E103 SmartGlobe_L_709 $1A8A $ SmartGlobe_L_708: ;SmartGlobe.pbas,1300 :: 0 $1A8A $6B19 _yy3, 1 $1A8C $EF49 F00D GOTO SmartGlobe_L_710 ;SmartGlobe.pbas,1301 :: $1A90 $ SmartGlobe_L_709: ;SmartGlobe.pbas,1302 :: inc(yy3) $1A90 $2B19 _yy3, 1, 1 ;SmartGlobe.pbas,1303 :: if $1A92 $ SmartGlobe_L_710: ;SmartGlobe.pbas,1305 :: = 0 then $1A92 $0E00 MOVLW 0 $1A94 $1949 XORWF _kp2+1, 0, 1 $1A96 $E102 L_main_15 $1A98 $0E00 MOVLW 0 $1A9A $1948 XORWF _kp2, 0, 1 $1A9C $ L_main_15: $1A9C $E10B SmartGlobe_L_712 $1A9E $ SmartGlobe_L_711: ;SmartGlobe.pbas,1306 :: 0 $1A9E $6B19 _yy3, 1 ;SmartGlobe.pbas,1307 :: = yy2 then $1AA0 $511C MOVF _yy, 0, 1 $1AA2 $194C XORWF _yy2, 0, 1 $1AA4 $E104 SmartGlobe_L_715 $1AA6 $ SmartGlobe_L_714: ;SmartGlobe.pbas,1308 :: yy1 $1AA6 $C34B F31C MOVFF _yy1, _yy $1AAA $EF58 F00D GOTO SmartGlobe_L_716 ;SmartGlobe.pbas,1309 :: $1AAE $ SmartGlobe_L_715: ;SmartGlobe.pbas,1310 :: inc(yy) $1AAE $2B1C _yy, 1, 1 ;SmartGlobe.pbas,1311 :: if $1AB0 $ SmartGlobe_L_716:

$1A84

BNZ yy3 = CLRF

else

INCF end if kp2

BNZ

BNZ yy3 = CLRF if yy

BNZ yy =

else

INCF end

$0103 MOVLB 3 $1AB2 $D000 SmartGlobe_L_713 ;SmartGlobe.pbas,1313 :: $1AB4 $ SmartGlobe_L_712: ;SmartGlobe.pbas,1317 :: if $1AB4 $ SmartGlobe_L_713: ;SmartGlobe.pbas,1319 :: 4000 $1AB4 $0103 MOVLB 3 $1AB6 $0EA0 MOVLW 160 $1AB8 $6F48 MOVWF _kp2, 1 $1ABA $0E0F MOVLW 15 $1ABC $6F49 MOVWF _kp2+1, 1 ;SmartGlobe.pbas,1320 :: manipulate $1ABE $EC7D F010 _manipulate $1AC2 $D01A SmartGlobe_L_707 ;SmartGlobe.pbas,1322 :: $1AC4 $ SmartGlobe_L_706: ;SmartGlobe.pbas,1324 :: = 0 then $1AC4 $0103 MOVLB 3 $1AC6 $514A MOVF _kp4, 0, 1 $1AC8 $0A00 XORLW 0 $1ACA $E10B SmartGlobe_L_718 $1ACC $ SmartGlobe_L_717: ;SmartGlobe.pbas,1326 :: = yy2 then $1ACC $511C MOVF _yy, 0, 1 $1ACE $194C XORWF _yy2, 0, 1 $1AD0 $E104 SmartGlobe_L_721 $1AD2 $ SmartGlobe_L_720: ;SmartGlobe.pbas,1327 :: yy1 $1AD2 $C34B F31C MOVFF _yy1, _yy $1AD6 $EF6E F00D GOTO SmartGlobe_L_722 ;SmartGlobe.pbas,1328 :: $1ADA $ SmartGlobe_L_721: ;SmartGlobe.pbas,1329 :: inc(yy) $1ADA $2B1C _yy, 1, 1 ;SmartGlobe.pbas,1330 :: if $1ADC $ SmartGlobe_L_722: $1ADC $0103 MOVLB 3

$1AB0

BRA else end kp2 =

CALL BRA else if kp4

BNZ if yy

BNZ yy =

else

INCF end

Appendix F

F-28

$EF72 F00D GOTO SmartGlobe_L_719 ;SmartGlobe.pbas,1332 :: $1AE2 $ SmartGlobe_L_718: ;SmartGlobe.pbas,1335 :: 0 $1AE2 $6B4A _kp4, 1 ;SmartGlobe.pbas,1336 :: if $1AE4 $ SmartGlobe_L_719: ;SmartGlobe.pbas,1338 :: 0 $1AE4 $0103 MOVLB 3 $1AE6 $6B19 _yy3, 1 ;SmartGlobe.pbas,1339 :: 4000 $1AE8 $0EA0 MOVLW 160 $1AEA $6F48 MOVWF _kp2, 1 $1AEC $0E0F MOVLW 15 $1AEE $6F49 MOVWF _kp2+1, 1 ;SmartGlobe.pbas,1340 :: kp $1AF0 $C0CA F371 MOVFF _kp, _kp1 ;SmartGlobe.pbas,1341 :: kp $1AF4 $C0CA F31A MOVFF _kp, _cnt ;SmartGlobe.pbas,1344 :: if $1AF8 $ SmartGlobe_L_707: ;SmartGlobe.pbas,1346 :: outdata $1AF8 $0103 MOVLB 3 $1AFA $EC75 F01F _outdata ;SmartGlobe.pbas,1349 :: if $1AFE $ SmartGlobe_L_689: ;SmartGlobe.pbas,1350 :: if $1AFE $ SmartGlobe_L_679: ;SmartGlobe.pbas,1351 :: if $1AFE $ SmartGlobe_L_665: ;SmartGlobe.pbas,1352 :: if $1AFE $ SmartGlobe_L_644: $1AFE $ SmartGlobe_L_592: ;SmartGlobe.pbas,1358 :: if $1AFE $ SmartGlobe_L_593: ;SmartGlobe.pbas,1359 :: if $1AFE $ SmartGlobe_L_570: ;SmartGlobe.pbas,1360 :: if $1AFE $ SmartGlobe_L_516:

$1ADE

else kp4 = CLRF end yy3 =

;SmartGlobe.pbas,1361 :: if $1AFE $ SmartGlobe_L_473: $1AFE $EFA1 F003 GOTO SmartGlobe_L_467 ;SmartGlobe.pbas,1362 :: wend $1B02 $D7FF $

end

BRA

CLRF kp2 =

kp1 =

cnt =

end

CALL end end end end

end end end

Appendix F

F-29

Appendix G: User’s Manual

SmartGlobe Operations Manual

Appendix G

G-1

Operating Instructions:

Power Switch Figure 1.1

Figure 1.2 1. Turn on the power switch as pointed on [Figure 1.1]. There will be a display on the LCD indicating the system information [Figure 1.2].

Figure 2.2 Figure 2.1.a Figure 2.1.b

2. Adjust the globe so that the laser pointer points to the Base Position, which is the intersection of the Prime meridian and the Equator. A black rubber marker is placed on the base position as an indicator [Figure 2.1.a, Figure 2.1.b]. To ensure proper alignment, the user can press the light bulb button [Figure 2.2] on the keypad to activate the laser pointer (with accompanying beep from the buzzer)

Appendix G

G-2

when adjusting the globe’s position. Pressing the light bulb button the second time would turn off the laser pointer.

Figure 3.1

Figure 3.2

3. In the country selection menu [Figure 3.1], input the country code from the list of countries located on the right-side of the LCD [Figure 3.2]. Press Enter.

4. After pressing the Enter button, the SmartGlobe will start locating the entered country. The laser pointer and the buzzer will activate once the process is finished. Press the Enter button so the globe will move back to its base position. When the globe is already at its default position, it is now ready to locate another country.

Appendix G

G-3

Updating/Editing Entries 1. In the country selection menu, input “9999” and press Enter. After pressing Enter, a message will be displayed, see Figure 5. Press Enter.

Figure 5 2. Input the corresponding code of the country you want to update. Press Enter. 3. Press SEL depending on the position of the information you want to update. The number you press the SEL button, the number of times it will move. For example, if you press it two times, it is on the Longitude attribute. When it is pressed three times, the cursor is on the Capital attributes, though you can’t see the cursor. 4. After selecting/determining the line to edit, press CLR(Clear). Type the word(s)/number depending on the changes you desire. 5. Press Enter. 6. In the country selection menu, input “9999” again and press Enter. After pressing Enter a message will be display, see Figure 6. Press Enter.

Figure 6

Appendix G

G-4

Appendix H: Sample Receipts

Appendix H

H-1

Appendix H

H-2

Appendix H

H-3

Appendix H

H-4

Appendix H

H-5

Appendix H

H-6

Appendix H

H-7

Appendix H

H-8

Appendix H

H-9

Sign up to vote on this title
UsefulNot useful