COPYRIGHT Copyright 1990-95—Octagon Systems Corporation. All rights reserved. However, any part of this document may be reproduced, provided that Octagon Systems Corporation is cited as the source. The contents of this manual and the specifications herein may change without notice.
Page 3
IMPORTANT! Please read before installing your product. Octagon's products are designed to be high in performance while consuming very little power. In order to maintain this advantage, CMOS circuitry is used. CMOS chips have specific needs and some special requirements that the user must be aware of.
Page 4
Using CMOS Circuitry in Industrial Control Industrial computers originally used LSTTL circuits. Because many PC components are used in laptop computers, IC manufac- turers are exclusively using CMOS technology. Both TTL and CMOS have failure mechanisms, but they are different. This section describes some of the common failures which are common to all manufacturers of CMOS equipment.
Page 5
Octagon has never found a single case where multiple IC failures were not caused by misuse or accident. It is very probable that multiple component failures indicate that they were user-induced. Testing “dead” cards - For a card that is “completely nonfunctional”, there is a simple test to determine accidental over voltage, reverse voltage or other “forced”...
Page 6
Serial and parallel - Customers sometimes connect the serial and printer devices to the Micro PC while the power is off. This can cause the failure mentioned in the above section, Failure upon power-up. Even if they are connected with the Micro PC on, there can be another failure mechanism.
Introduction ..................5 Major Features ..................6 CHAPTER 2: INSTALLATION ........9 Equipment ................... 9 Installing the 5083 Microcontroller ..........10 Uploading & Downloading Programs ..........13 Uploading Your Program ............13 Downloading Your Program ............13 Where To Go From Here ..............14 Troubleshooting .................
Page 8
CHAPTER 5: STORING IN EEPROM ......25 Introduction ..................25 Configuring the EEPROM ..............25 Saving a Program in EEPROM ............26 Loading Programs to RAM ............... 27 Renaming a Program in the EEPROM ..........27 Deleting a Program From EEPROM ..........28 Running a Program From EEPROM ..........
Page 9
CHAPTER 8: ANALOG INPUTS........45 Introduction ..................45 Connecting to the 5083 ..............45 Initializing Analog Channels ............46 Accessing Analog Data ..............48 Measuring High Voltages ..............50 Converting Analog Measurements ..........50 Measuring 4–20 mA Current Loops ......... 51 Calibration ..................
Interface the 5083 to your IBM–compatible PC and the Micro PC Expansion Cards. • Set up communications between the 5083 and a terminal or • Gain an understanding of the operation of 5083 hardware using CAMBASIC IV programming language, and the monitor software for C and assembly programming.
W[ – ] Denotes a jumper block and the pins to connect. NOTE Information under this heading presents helpful tips for using the 5083. Information under this heading warns WARNING: you of situations which might cause catastrophic or irreversible damage.
Page 13
Download Transferring a program or data from a PC to the RAM on the 5083; also refers to loading the program stored in the EEPROM to the RAM. Free Memory The amount of memory available for program and data storage.
TECHNICAL SUPPORT If you have a question about the 5083 Microcontroller and can’t find the answer in this manual, call our Technical Support. They will be ready to give you the support you need.
It can be used alone or in conjunction with Octa- gon Micro PC expansion cards. The 5083 uses one slot of the Micro PC card cage. All communica- tion between the 5083 and your PC is done through the serial ports.
CAMBASIC. The output response time is 5 uS. Digital I/O Port and Opto Rack Interface The 5083 has 40 I/O lines to interface with logic devices, switch inputs, LEDs, and drive an opto mounting rack. The input and output levels are 0–5V logic compatible. Eight of the digital I/O lines are also supported as an LCD display port, while another eight lines are also supported as a keypad port.
Page 17
AutoBaud The AutoBaud feature automatically determines and operates at the baud rate of your PC. The 5083 will match baud rates of 300, 1200, 2400, 4800 and 9600. On–Card Programmer Once your program has been debugged, you can store it in the EEPROM by using the on–card programmer and the SAVE...
Page 18
Battery–backed RAM The static RAM on the 5083 may be battery–backed for saving process data during power down. 128K and 512K RAMs may be battery–backed with the DS–1213DM SmartSocket. Battery life is typically 10 years at room temperature. Calendar/clock A battery–backed calendar may be added to the system by insert- ing the DS–1216EM SmartWatch into the EEPROM socket and...
Chapter 2 INSTALLATION The 5083 is designed to be ready to program from the time you plug it in. Installation is simple and straightforward. The 5083 requires one slot in the Micro PC card cage and plugs directly into the backplane (motherboard).
INSTALLING THE 5083 MICROCONTROLLER Before installing the 5083, refer to Figure 2–1 for the location of various connectors and jumpers. Keypad Port COM2 Watchdog Display COM3 Latch Output LCD Contrast Adjust Serial Reset EEPROM U 17 COM1 U 19 U 12...
Page 21
To install the 5083 in the card cage: Turn power module or supply off. Slide the 5083 into the card cage. The components will face left or up depending on the type of card cage. Push firmly into the backplane socket.
Page 22
CAMBASIC IV and the amount of free memory available: CAMBASIC IV (tm) (c) 1985-92 Octagon Systems Corporation Vxx.x — All rights reserved Bytes free — 33518 If you don’t get the proper logon message, refer to the Troubleshooting section at the end of this chapter.
Downloading programs means transferring them from your PC to RAM on your 5083. Uploading means transferring them from RAM on the 5083 back to the PC. This section explains how to do both of these procedures if you are using PC SmartLINK. Please refer to Appendix A if you are using other communications soft- ware.
Check the serial parameters on your PC. The default setting should be: 9600 baud, no parity, 8 data bits, 1 stop bit Make sure the serial cable is properly connected between the 5083 and your PC or terminal. Installation – 14...
Page 25
For communications packages other than PC SmartLINK, please note: • The 5083 does not send a CTS signal to the host. This line is tied high. If your terminal or communications software requires other signals (DCD, DSR), you may have to tie these signals to the appropriate levels.
Page 26
• The 5083 does not recognize the RTS line from the host to pace communications. This is important if your terminal’s communications become garbled or otherwise unreadable. Most often this happens because the 5083 is continually sending out data and the receiving unit cannot handle all of Please refer to Using Other Serial Communications Software in Appendix A for additional information.
Programs are read from the EEPROM, downloaded (written to) the system RAM in U15, and run from system RAM. You can also use a 32K EPROM in the 5083. It also provides nonvolatile memory and can be used to store programs. However, to store programs to the EPROM, you must use an off–card...
Turn off power to the 5083. Remove the memory chip from socket U15. Install the DS–1213D or DS–1213DM into socket U15 with the index mark pointing towards the 5083 gold contact fingers. Install the new memory chip into the top of the module.
Installing EEPROM Chips The 5083 is shipped with a 32K EEPROM installed in socket U14 (the “user socket”). To change the device, you need to remove the original chip, install the new device, and change the jumper settings in jumper block W1.
Page 30
This page intentionally left blank. Adding Memory – 20...
Chapter 4 STORING IN RAM INTRODUCTION Although RAM is volatile, it is usually the most convenient means of temporarily storing data, program variables, etc. When perma- nent storage is required, a battery–backup module can be added. This chapter describes the memory usage of CAMBASIC IV, and how to save and retrieve information from the static RAM.
Page 32
&10000 Stack & string space SYS(3) Available RAM SYS(2) Program & variables &7000 128K & 512K RAM System &EC00 Stack & string space SYS(3) Available RAM SYS(2) Program & variables &7000 32K RAM System Figure 4–2—32K, 128K and 512K RAM The following program demonstrates how to reserve 100 bytes of RAM space: 10 'Allocate 100 bytes for user data,...
PROGRAMMING EXAMPLES This section includes three examples: saving and retrieving a variable, a string, and an array. For more information, please refer to the CAMBASIC IV Programming Guide. Saving and Retrieving a Variable 'Saves byte value into address 200. A 10 POKE 200,A,1 byte is any number from 0 to 255.
COMMANDS The following is a list of the CAMBASIC IV commands used with the RAM: 5083 Memory Commands Command Function ARRAY Save or return a value from extended memory The PEEK and POKE commands save and retrieve byte PEEK values...
SSD command in the CAMBASIC IV Programming Guide for storage options. The 5083 Microcontroller is shipped with a 32K EEPROM in socket U14. The EEPROM is nonvolatile (retains memory even when power is disconnected), has an unlimited number of read cycles, and each memory location can be written to more than 10,000 times.
5083 Autorun Select: W1 Pins Jumpered Function [1-2]* Autorun enabled Not jumpered Autorun disabled * = default Next, the EEPROM must be configured using the CONFIG SSD command. This command configures the EEPROM for either one 32K program (type=0) or four 8K programs (type=1). It is executed only when you install a new EEPROM or want to change the configuration of an existing EEPROM.
The prompt ( > ) appears when the program has been successfully saved to the EEPROM. If the program does not properly write to the EEPROM, an error message appears: Failed @ XXXX> >__ XXXX is the hexadecimal address where the program failed. If you have configured the EEPROM to store four 8K programs, subsequent programs can be stored using the SAVE command: SAVE "BOOT"...
RUN. SERIAL EEPROM The 5083 has a serial EEPROM located at U18. You can save up to 128 bytes of data to the serial EEPROM using the SAVE# command. This command copies 128 bytes of data, starting from &8000 in memory into the serial EEPROM.
Page 39
letters of the first file are “BOOT”, it will load the file into RAM and run the program. It ignores any other part of the filename. For example, any one of the following will autoexecute, if it is the first program stored on the SSD: BOOT BOOT–PUMP2 BOOT12–1–90...
BOOT. COMMANDS The following is a list of CAMBASIC IV commands used in storing and running programs saved in the EEPROM. 5083 Commands to Store and Run Programs Command Function CONFIG SSD Sets up EEPROM as a disk...
All three serial ports support XON/XOFF software protocol when transmitting so that a remote device can tell the 5083 to start and stop data transmission. XON and XOFF are special characters chosen to establish a flow control protocol. When XON is received, transmission is temporarily suspended until XOFF is received.
COM2 (J4) COM2 can be used as a general purpose serial port. It cannot be used to download or edit your programs. It supports two hardware handshake lines, CTS and RTS. The BIT command can be used to monitor the logic levels of the CTS line and control the RTS line. The following example demonstrates how to monitor the hand- shake lines: 70 ..
Page 43
70 .. 80 'The following program refers to COM3 only. 90 .. :'COM3 CTS is bit 5 of port CTS=BIT(&E8,5) address &E8 :'If not OK to send, keep 110 IF CTS <> 1 THEN 100 monitoring 120 .. 130 'Program continues when receiver is ready to accept character from COM3 140 ..
CHANGING THE SERIAL PARAMETERS Autobaud on COM1 During program development, when you power–on the 5083, the system displays a nonsense message if the baud rate of your PC is not set to 9600. If you press the <ESC> key, the autobaud feature automatically adjusts the baud rate to 300, 1200, 2400, 4800 or 9600 and a communications link is established with your PC.
MULTIDROP COMMUNICATIONS NETWORK You can use your 5083 Microcontroller with a multidrop communi- cation network by connecting COM2 or COM3 to the network with an MTB–485 converter. The MTB–485 converts the serial port to RS–422 or RS–485. With the MTB–485, you can connect up to 32 units (including one or more 5083 Microcontrollers, PCs and other devices) over a 4,000 foot range.
The MTB–485 automatically turns the transmitter on and off. For more information on the MTB–485, please refer to the MTB–485 Product Sheet. 5083 Micro–PC Microcon- Control troller Card (with PC–485 card) “black 7415 box" Meter (with RS–485 (with RS–485 card)
INPUT Statement This removes all characters in the buffer up to the terminator character and puts them into a CAMBASIC IV variable. When you use the INPUT statement, CAMBASIC suspends operation until you enter the terminator character (carriage return). If the buffer fills (256 bytes) and you have not entered a carriage return, all subsequent characters will be discarded.
COMMANDS The following is a list of the CAMBASIC IV commands used for serial I/O functions. 5083 Serial I/O Commands Command Function CLEAR COM$ Resets serial input buffer Clears screen...
ORGANIZATION OF CONNECTORS AND PORTS The digital I/O lines on the 5083 are supplied by a 82C55 chip. The 82C55 is located in socket U1, which is connected to J2. J6 and J7 are the keypad and display ports. However, they may be used as general digital I/O ports.
On power–up and software or hardware reset, all the 82C55 digital I/O lines in J2 are configured as inputs. All lines are TTL logic level compatible (0–5V) and have 10K pull–up resistors to the 5V supply. 5083 Digital I/O Port: J2 Port Description Address...
J2 and the other plugs into an MPB–8, MPB–16, or MPB–24 mounting rack. You can also use a CMA–26 cable to connect J2 on the 5083 to a STB–26 terminal board and then to the opto rack. The STB–26 has two 26–pin connectors, one of which plugs into J2;...
The STB–26 terminal board provides a convenient way of interfac- ing switches or other digital I/O devices to the 82C55 digital port on the 5083 Microcontroller. All 82C55 lines have 10K pull–up resistors. I/O lines at connector J2 can be connected to the STB–26 with a CMA–26 cable.
COMMANDS The following is a list of the CAMBASIC IV commands used for digital I/O: 5083 Digital I/O Commands Command Function Function returns status of bit at I/O address Statement sets a bit to 0 or 1 at an I/O address...
Page 54
This page intentionally left blank. Digital I/O Lines – 44...
Additional technical information is found in Appendix C. CONNECTING TO THE 5083 Analog devices interface to the 5083 via a 20–pin IDC connector at J3 and supports either eight channels single-ended or four chan- nels differential. A STB–20 terminal board provides a connection for field wiring.
The syntax is: CONFIG AIN channel, input , polarity channel ranges from 0 to 7 for single–ended inputs. Refer to the following table for corresponding J3 connector pins to the 5083 channels. 5083 Analog Port: J3...
Page 57
Below are examples of the CONFIG AIN command: • Single–ended mode, 0 to +5V input range CONFIG AIN chan ,1,1 The result from the AIN function will be zero for 0.000V and 4095 for a +4.9988V. chan may range from 0–7. •...
ACCESSING ANALOG DATA Once the system has been initialized, analog data can be accessed using the AIN function: S=AIN(channel) This command will assign the analog value of a specified channel to variable S. The value returned will always be in the 0–4095 range because the A/D converter is 12 bits.
Page 59
The program below takes about 2.7 mS per data point and requires 2000 bytes of data storage: F=&7000 FOR X=0 TO 999 DPOKE F,AIN(0) F=F+2 NEXT The program below takes about 1.8 mS per data point and requires 4000 bytes of data storage. This is because the multitasking has been shut off: CONFIG TASK OFF DIM F(1000)
MEASURING HIGH VOLTAGES Voltage ranges higher than +5V can be measured by placing a resistor in series with the input: Analog Input Voltages Input Voltage Resistor Ω 200 K Ω 1.0 M Ω 12.5 1.5 M Ω 3.8 M If you have a voltage range other than that listed above, use the following formula to determine the series resistance: Rs=Vi x 200,000 - 1,000,000 Rs is the resistor value in ohms in series with the input.
= .0488 * AIN(n) Measuring 4-20 mA Current Loops The 5083 can measure devices with 4–20 mA current outputs with slightly reduced resolution. A 4–20 mA current loop is converted to voltage by placing a shunt resistor across the input of the channel to ground.
NOTE: If the current loop line breaks, the system returns a negative value. CALIBRATION The A/D converter can be calibrated using the 5083 internal voltage reference or an external voltage reference. For 12–bit accuracy, you must use a voltmeter with an accuracy of 0.02% or better.
COMMANDS The following is a list of the CAMBASIC IV commands for the analog inputs: 5083 Analog Input Commands Command Function Returns result of A/D conversion CONFIG AIN Initializes the analog channel Analog Inputs – 53...
Page 64
This page intentionally left blank. Analog Inputs – 54...
The output for channel 0 is located at pin 17 on J3. NOTE: External analog output channels can be connected to the 5083 with a STB–20 Terminal Board. Sending Data to an Analog Output The AOT command is used to send data to an analog output. The...
Page 66
0–5V range: AOT channel ,819*volt +/–5V range: AOT channel , 409.5*volt+2047.5 Refer to the CAMBASIC IV Programming Guide for more informa- tion on the AOT statement. Analog Output – 56...
Chapter 10 DISPLAY PORT INTRODUCTION The 5083 has a dedicated LCD display port (J7) with built–in contrast control. Supported displays range in size from two lines by 20 characters to four lines by 20 characters. The Display port lines are unbuffered and connect WARNING: directly to the microcontroller chip (Z80181).
Connect one end of the display cable (included with your display) to the display. Connect the other end of the cable to J7 on the 5083. You are now ready to initialize the display. The example below is for a 4x20 LCD display. Notice that all DISPLAY statements end with a semicolon so that a carriage return/line feed is not sent.
You are now ready to initialize the display. The following program demonstrates how to drive a 4x20 LCD via the J2 digital port: 'Config dig I/O port CONFIG PIO 0,0,0,0,0,0 'Config display type CONFIG DISPLAY 0,6,0 'Build display strings A$="OCTAGON'S BUILT-IN" B$="DISPLAY COMMAND"...
80 DISPLAY (2,1) C$; 90 END COMMANDS The following is a list of the CAMBASIC IV commands for the display: 5083 Display Commands Command Function Specifies which multi-line display you want to use with the display statement. For more information on...
5083 with the cable included with your keypad. Larger keypads must be connected to an interface board (IFB); the IFB is then connected to either J2 on the 5083 or to a port on the 5600 Digital I/O Expansion Card.
Connect one end of the keypad cable (included with your keypad) to the keypad. Connect the other end of the cable to J6 on the 5083 card. You are now ready to initialize the keypad. The example below is for a 16–key keypad: ..Use def 16–kp type...
Connect a CMA–26 cable from the IFB to J2 on the 5083. You are now ready to initialize the keypad. The following example is for a 64–key keypad: 'Set up PIO port 10 CONFIG PIO &0,0,0,0,1,1 'Use 64–keypad type 20 CONFIG KEYPAD$ 8,64,&0 30 ON KEYPAD$ GOSUB ..GETKEY 'Enable keypad task...
Please refer to the 5600 I/O Expansion Card User’s Manual for information on determining your 5600 port address. COMMANDS The following is a list of the CAMBASIC IV commands for the keypad: 5083 Keypad Commands Command Function CONFIG KEYPAD$ Sets keypad parameters KEYPAD$(0)
The high current port can be used to drive relays, LEDs, solenoids, and similar devices. The port includes eight I/O lines at J2 on the 5083. These outputs switch load to ground. If you do not use this port to drive high current devices, you can replace the output driver chip, U2, with a DIP shunt jumper and use the lines as general purpose digital I/O lines.
Page 76
24V supply must be connected to J2, pin 26 and NOT the power ground. Failure to do so will produce a ground loop within the 5083 and can cause erratic operation. High Current Ports– 66...
Chapter 13 WATCHDOG TIMER The watchdog timer is a fail-safe against program crashes or processor lockups. The following table shows how to enable, disable, and reset the timer. 5083 Watchdog Timer Task Command To enable OUT &40, 1 To disable OUT &40, 0...
To install the DS–1216EM SmartWatch at U14: Remove the memory chip from socket U14. Install the DS–1216EM SmartWatch into socket U14 with the index mark pointing towards the 5083 gold contact fingers. Install the EEPROM into the top of the SmartWatch.
PRINT TIME$(0) NOTE: Writing to the clock will not affect any information stored in the EEPROM. COMMANDS The following is a list of the CAMBASIC IV commands for the calendar/clock: 5083 Calendar/Clock Commands Command Function DATE$ Reads/sets date from calendar/clock TIME$ Reads/sets timer for calendar/clock Calendar/Clock–...
Chapter 15 INTERRUPT HANDLING INTRODUCTION The 5083 can be mounted in a passive backplane for use with external interrupt devices. You can use a switch closure, magnetic pick up, or other device capable of switching between +5V and ground for external interrupt generation. Refer to the following...
'Ret from interrupt routine to 530 RETURN ITR 3 normal program flow COMMANDS The following is a list of the CAMBASIC IV commands used for interrupt functions: 5083 Interrupt Commands Command Function ON ITR Enables a program branch on an interrupt RETURN ITR Re-enables an interrupt and returns program control Interrupt Handling –...
Transmitted data Received data POWER MODULE The 5083 needs a 5V power module, which is generally purchased and installed with your card cage. If you are not using the Octagon power module, you can use any well–regulated power module that can furnish at least 200 mA.
To use your power module with the 5083 Control Card: • Connect the negative lead from your power module to the terminal marked DG on the backplane. Connect the +5 lead to the terminal marked +5. The leads should be no longer than 18 inches and must be 18 gauge or larger.
Page 85
• To upload a program (transfer it from the 5083 RAM to your PC), your PC needs to receive a file. Refer to your communi- cations software documentation for details.
Page 86
<RETURN>. • The serial port COM1 (J1) does NOT use handshaking or control lines. • Set up serial communications software to transmit a file when downloading a program to the 5083. Non–Octagon Components – 76...
32K nonvolatile memory (EEPROM) 5083 Digital I/O The 5083 has 40 digital I/O lines using one 82C55 chip and the CPU chip. Twenty-four of the I/O lines are terminated with a 26–pin IDC connector. The remaining 16 I/O lines are terminated with IDC connectors for a keypad and display.
Page 88
RTS and CTS handshake lines. COM3 (J5) supports the RxD and TxD signals, as well as the RTS, CTS, DCD and DTR hand- shake signals. EEPROM Programmer Programs 32K, including: 5083 EEPROMs Vendor Size Order # Octagon 29C256 2527...
Page 89
Memory Map Memory Map &FFFFF Solid–state Disk (U14) &80000 512K RAM &27000 128K RAM &10000 System &F000 RAM (U15) 32K RAM &7000 CAMBASIC ROM (U13) 0000 Technical Data – 79...
Page 90
I/O Map 5083 I/O Map Description Address J2 Digital I/O 00-03 Watchdog enable Serial EEPROM chip select Serial EEPROM data in Serial EEPROM shift clock A/D chip select Watchdog strobe 50H-5FH I/O write Serial EEPROM data out 50H-5FH I/O read...
27C256 (EPROM)** [3-4][5-6] * = default **NOTE: The on-card EEPROM programmer cannot be used with a 27C256. The EPROM must be programmed off card and then installed in U14 on the 5083. 5083 Autorun Select: W1 Pins Jumpered Function [1-2]*...
CONNECTOR PINOUTS 5083 COM1, 2, 3 serial ports: J1, J4, J5 Function Pin # Technical Data – 82...
Page 93
5083 Digital I/O: J2 Port B (high I/O Line Port A Port C current) Line 0 Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 +5V - Pin 2 Gnd - Pin 26 5083 Keypad Port: J6...
Page 94
5083 Display Port: J7 Function Pin # Data 4 Contrast Data 6 Data 5 Data 1 Data 0 Data 3 Data 2 Technical Data – 84...
PC BUS PINOUTS Microcontroller Side "A" Pin # Description Signal Pin # Description Signal I/O CH CK* Not used Not used Not used Not used Not used I/O CH RDY Not used Not used Not used Not used Not used * = active low Technical Data –...
Page 96
Microcontroller Side "B" Pin # Description Signal Pin # Description Signal DACKI* Not used RESET DRQ1 Not used DACK0* Not used IRQ2 CLOCK Not used IRQ7 Not used DRQ2 Not used IRQ6 Not used -12V Not used IRQ5 Not used Reserved Not used IRQ4...
APPENDIX C ANALOG INPUT ANALOG INPUT The analog input circuitry includes the LTC1290 I.C. from the Linear Technology corporation (Ph# 408 432-1900). The LTC1290 contains a serial I/O successive approximation A/D converter. The chip’s 8–channel input multiplexer can be configured for either single–ended or differential inputs (or combinations thereof) For input protection, we have added current limiting resisters and a diode clamp array to the circuit.
Page 98
that are programmed for the single–ended mode do not require the filter capacitors. Signal Conditioning Devices such as RTDs and thermocouples generate signal levels that can not be read directly by the LTC1290. A thermocouple, for example, will typically generate an output signal in the millivolt range.
WARRANTY Octagon Systems Corporation (Octagon), warrants that its stan- dard hardware products will be free from defects in materials and workmanship under normal use and service for the current established warranty period. Octagon’s obligation under this warranty shall not arise until Buyer returns the defective product, freight prepaid to Octagon’s facility or another specified location.
RETURNING A PRODUCT FOR REPAIR Upon determining that repair services are required, the customer must: Obtain an RMA (Return Material Authorization) number from the Customer Service Department, 303-430–1500. If the request is for an out of warranty repair, a purchase order number or other acceptable information must be sup- plied by the customer.
Need help?
Do you have a question about the 5083 and is the answer not in the manual?
Questions and answers