' ========================================================================= ' ' File....... Simple-Calc.BS2 ' Purpose.... ' Author..... Jon Williams -- Parallax, Inc. ' E-mail..... jwilliams@parallax.com ' Started.... ' Updated.... 21 DEC 2005 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ Revision History ]------------------------------------------------ ' -----[ Conditional Definitions ]----------------------------------------- ' -----[ I/O Definitions ]------------------------------------------------- Sio CON 16 ' use programming port ' -----[ Constants ]------------------------------------------------------- #SELECT $STAMP #CASE BS2, BS2E, BS2PE T1200 CON 813 T2400 CON 396 T4800 CON 188 T9600 CON 84 T19K2 CON 32 TMidi CON 12 T38K4 CON 6 #CASE BS2SX, BS2P T1200 CON 2063 T2400 CON 1021 T4800 CON 500 T9600 CON 240 T19K2 CON 110 TMidi CON 60 T38K4 CON 45 #CASE BS2PX T1200 CON 3313 T2400 CON 1646 T4800 CON 813 T9600 CON 396 T19K2 CON 188 TMidi CON 108 T38K4 CON 84 #ENDSELECT SevenBit CON $2000 Inverted CON $4000 Open CON $8000 Baud CON Inverted + T9600 ' -----[ Variables ]------------------------------------------------------- value1 VAR Word value2 VAR Word op VAR Byte result VAR Word ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Reset: ' -----[ Program Code ]---------------------------------------------------- Main: SEROUT Sio, Baud, [CLS, "Simple Calculator", CR, CR] Get_V1: SEROUT Sio, Baud, ["Enter Value 1: "] SERIN Sio, Baud, [DEC value1] SEROUT Sio, Baud, [CR] Get_V2: SEROUT Sio, Baud, ["Enter Value 2: "] SERIN Sio, Baud, [DEC value2] SEROUT Sio, Baud, [CR] Get_Operator: SEROUT Sio, Baud, ["Enter Operator (+, -, *, /): "] SERIN Sio, Baud, [op] SEROUT Sio, Baud, [CR, CR] LOOKDOWN op, ["+-*/"], op IF (op > 3) THEN GOTO Get_Operator ELSE SELECT op CASE 0 : result = value1 + value2 CASE 1 : result = value1 - value2 CASE 2 : result = value1 * value2 CASE 3 : result = value1 / value2 ENDSELECT SEROUT Sio, Baud, ["Result = ", SDEC result, CR, CR] SEROUT Sio, Baud, ["Press a key."] SERIN Sio, Baud, [op] ENDIF GOTO Main END ' -----[ Subroutines ]-----------------------------------------------------