üm< ¶ CALCULATOR PROGRAM BOTH DECIMAL AND HEX IS SUPPORTED4¶ HANK SZYSZKA 10/14/1981 BEARSVILLE, NEW YORK¶(‰ O,E,N,S,M,H 2Š I,P9<SOROÃì ¶SET TO A 1 IF THIS IS A SOROC TERMINAL.9FHEATÈì ¶SET TO A 1 IF THIS IS A HEATH TERMINAL.3Kamscpm²ì ¶set to 1 if cp/m 2.2 on Amstrad4Lamscpm³ì ¶set to 1 if cp/m plus on AmstradP¶ CALC RESTART HEREZ� SÐï â œ Jd› ì ¶CLEAR SCREENnCOÌìRO×ìx›   ¶SET CURSOR ROUTINE*‚Áì"LAST OPERAND: "ñOPÒ› <=ŒTÂì/Áì"HEXADECIMAL REGISTER"› <Áì""› dK–Áì"OLD TOTAL"› <TÂì(+ò(ÿ(ÿ"(OÔ))))Áìÿ"(OÔ)› <* HØìOÔ› .  HØìOÔ› LKªÁì"ENTERED"› <TÂì(+ò(ÿ(ÿ"(ENÔ))))Áìÿ"(ENÔ)› <,´HØìENÔ› .  HØìENÔ› LK¾Áì"NEW TOTAL"› <TÂì(+ò(ÿ(ÿ"(NÔ))))Áìÿ"(NÔ)› <*ÈHØìNÔ› .  HØìNÔ› LJÒÁì"MEMORY"› <TÂì(+ò(ÿ(ÿ"(MEÍ))))Áìÿ"(MEÍ)› <,ÜHØìMEÍ› .  HØìMEÍ› LæÁì""› dLðÁì"ADD------ + CLEAR ALL------- C SET MEMORY- S HEX------ X" ú› dLÁì"SUBTRACT- - CLEAR, SAVE MEM- Q USE MEMORY- M INFO----- I" › dBÁì"MULTIPLY- * DECIMAL POINT--- . QUIT------- 'QUIT'" "› dC,Áì"DIVIDE--- / RESET----------- R REPEAT----- 'ENTER'" 6› d@Áì""› d*JÁì"ENTER:"› œ ¶ GET INPUT DATATOPÒì"""^OÔìNÔENÔìÿ&(NVÁ)&h� NVÁ ì "QUIT" â › F  œ ‚)r� NVÁì"I" â › ì  ›    œ P!|� ÿx(NVÁ,) ì " " â œ ˜1†� ÿx(NVÁ,) ì "*" â › Ð  › î  œ P1�� ÿx(NVÁ,) ì "/" â › Ð  ›   œ P1š� ÿx(NVÁ,) ì "-" â › Ð  › N  œ P0¤� ÿx(NVÁ,) ì "+" â › Ð  NVÁìVÁ1®� ÿx(NVÁ,) ì "X" â › Ð  › Š  œ P[¸� NVÁì"C" â VÁì"0"ENÔìNÔìMEÍìOÔìOPÒì" CLEAR ALL:"œ P@Â� NVÁì"S" â MEÍìNÔ OPÒì" MEMORY SAVE:" œ PMÌ� NVÁì"Q" â OÔì NÔìENÔìOPÒì" CLEAR MEMORY:" œ PVÖ� NVÁì"M" â ENÔ ì MEÍ  NÔìNÔñENÔOPÒì" MEMORY USE:" œ P4à� NVÁì"R" â ENÔìOPÒì" RESET:"œ PêNÔìNÔñ(ÿ&(NVÁ))ôENÔìÿ&(NVÁ)þ� NVÁì"" â œ POPÒì" ADDITION:" œ P"¶ DIVIDE ROUTINE ***********9&� VÁì"M" â ENÔìMEÍNÔìNÔôENÔœ : 0NÔ ì NÔ ô (ÿ&(VÁ)):OPÒì" DIVIDE :"DÀ&N¶ SUBTRACT ROUTINE *************<X� VÁì"M" â NÔìNÔòMEÍ ENÔìòMEÍ œ vbNÔ ì NÔò(ÿ&(VÁ))lENÔìòÿ&(VÁ)vOPÒì" SUBTRACT:"€Àж HEX CONVERSION HERE!”OPÒì" HEX DATA ENTRY: "žHÎìVÁ  › À¨ENÔìSÔ²NÔìNÔñENÔ¼¶ÆÀ$ÐVÁìÿ|(NVÁ,(ÿ(NVÁ)ò))ÚENÔìÿ&(VÁ)äÀ*î¶ MULTIPLY ROUTINE *****************9ø� VÁì"M" â ENÔìMEÍNÔìNÔóMEÍœ  NÔ ì ÿ&(VÁ)óNÔ OPÒì" MULTIPLY :"À ¶ HERE FOR HELP MESSAGES$*COÌìRO×ì›    › dI4Áì"MAXIMUM INPUT: 16 DECIMAL DIGITS, 4 HEXADICIMAL DIGITS."› dI>Áì" OUTPUT: 16 DECIMAL DIGITS, 4 HEXADICIMAL DIGITS."› dHHÁì"VALUES MAY BE CHAINED BY SEPARATING THEM WITH A BLANK,"› dERÁì"THE OPERATORS (+,-,*,/,X) PRECEED THE VALUE WITH NO"› dK\Áì"INTERVEENING BLANK, EG, 1 +2 *4 /5 -2 (DEFALT OPERATOR IS ADD)." f› dDpÁì"FUNCTION CHAINING OF (C,Q,R,S,I) IS NOT PERMITTED."› dzOPÒì" INFORMATION "#„Áì"PRESS RETURN KEY:"› œ Žœ P!˜OPÒì" IMPROPER ENTRY:"¢NVÁì"0"VÁì"0" ¬œ P5¶¶********** HEX CONVERSION ROUTINE ************%ÀÌìÿ(HÎ)ÐìÌSÔìÊÃì"123456789ABCDEF"Ô™ Éì ã ÌÞÐìÐò%èÈì©(HÎ,É,) ¶GET DIGITòÔìÿw (Ã,È)/ü� Èë"F" â OPÒì" ERROR *****"œ P#SÔìSÔñ(Ôó(õ(Ð))) « ÉÀ $¶ DECIMAL TO HEX TRANSLATE&.� HØî â HØìHØò(óHØ)8› j TÂì7› FBÀ*L¶ CONVERT HEX ENTRY TO HEX PRINT OUT(V› j TÂì@› FÁì""› d`À&j� HØëÿ� â Áì"OVERFLOW"À(t� HØîò� â Áì"OVERFLOW"À~¡ Áìÿt(HØ)ˆ� HØî â Áì"FF"ñÁ’À$œ¶ HERE FOR LINE INPUT FUNCTION¦COÌìRO×ì›  °TÂì› <º� SAÖì"" â ¢ ž ;SAÖ5ÄSÐìÿw(SAÖ," ")� SÐì ÷ SAÖì"" œ â<Î� SÐì ÷ SAÖï"" â NVÁìSAÖ SAÖì"" œ â7ØNVÁìÿx(SAÖ,SÐò)SAÖì©(SAÖ,SÐñ)âÀ-ì� HEATÈ â ³ ÿ();"E "-ö� SOROà ⠳ ÿ();"* "û� amscpm² â ³ ÿ( );!ü� amscpm³ â ³ ÿ();"E";À" ¶ CURSOR POSITIONING ROUTINE&COÌìCOÌñ RO×ìRO×ñ 5� HEATÈ â ³ ÿ();"Y";ÿ(RO×);ÿ(COÌ);5(� SOROà ⠳ ÿ();"=";ÿ(RO×);ÿ(COÌ);3-� amscpm² â ³ ÿ();ÿ(RO×);ÿ(COÌ);7/� amscpm³ â ³ ÿ();"Y";ÿ(RO×);ÿ(COÌ);2À<¶ PRINT OUTPUT ROUTINEF³ á(TÂ);Á;PÁì""TÂìZÀ d³ Á nÁì""xÀ‚“1Œ¢ Ÿ,Á ¶ DUMMY ENTRY FOR LINE INPUT BUG.á(TÂ);Á