Listing of file='CALC1.BAS;01' on disk='vmedia/chip_125-sideB-sector.ccvf'
100 REM PROGRAM TO SIMULATE A PRINTING CALCULATOR. 200 REM BY JOHN CRANE CONSULTING. FOR COMPUCOLOR II. 300 REM ALL RIGHTS RESERVED - AUGUST 1979. 400 REM 500 REM 600 T= 0:M= 0:REM SET TOTAL & MEMORY TO 0. 650 PI= 3.141592654 700 GOSUB 10000:REM CLEAR SCREEN AND PRINT HEADER. 710 PRINT "THIS PROGRAM CONVERTS YOUR COMPUCOLOR II INTO A " 720 PRINT "PRINTING CALCULATOR WHICH SUPPORTS MANY SCIENTIFIC" 730 PRINT "AS WELL AS ARITHMETIC FUNCTIONS." 740 PRINT 750 PRINT "IF YOU DO NOT HAVE A PRINTER ATTACHED TO THE RS232" 760 PRINT "CONNECTOR, THE PROGRAM WILL STILL OPERATE USING THE" 770 PRINT "TELEVISION SCREEN AS THE OUTPUT DEVICE." 780 PRINT 790 PRINT "AT THIS TIME PLEASE TURN THE PRINTER ON AND PAGE THE PAPER" 800 PRINT "TO THE TOP OF THE FIRST PAGE." 810 PRINT 820 PRINT "PLEASE ENTER THE BAUD RATE OF THE PRINTER : " 830 PRINT " ( IF NO PRINTER; ENTER 0 )" 840 PLOT 28,28,3,46,16 850 INPUT T 860 B= 0 870 IF T= 0THEN B= 7:GOTO 950 880 IF T= 110THEN B= 1:GOTO 950 890 IF T= 150THEN B= 2:GOTO 950 900 IF T= 300THEN B= 3:GOTO 950 910 IF T= 1200THEN B= 4:GOTO 950 920 IF T= 2400THEN B= 5:GOTO 950 930 IF T= 4800THEN B= 6:GOTO 950 940 IF T= 9600THEN B= 7:GOTO 950 942 IF B= 0THEN PLOT 28,11:PRINT "ILLEGAL INPUT !!":FOR I= 1TO 1000:NEXT I 944 PLOT 28,11:GOTO 820 950 REM BEGINNING OF MAIN PROGRAM. 960 REM 970 REM 980 T= 0 1300 GOSUB 12000:REM PRINT HEADER ON PAPER. 1400 GOSUB 10000:REM CLEAR SCREEN AND PRINT CRT HEADER. 1500 PRINT "FUNCTIONS : + - * / ^ INTEGER ABS VALUE CHG SIGN" 1502 PRINT 1504 PRINT " SIN COS TAN LOG CLRTOTAL CLRALL CLRMEMORY" 1506 PRINT 1510 PRINT " +M -M *M /M >M RECALLMEMORY END PROGRAM" 1520 PRINT 1550 PRINT "ENTER CALCULATIONS BELOW : " 1600 PLOT 3,0,30:REM MOVE TO BOTTOM OF THE SCREEN. 1610 PRINT "( TO END PROGRAM TYPE 'END' FOR FUNCTION ENTRY. )" 1620 PLOT 3,0,12:REM MOVE TO START OF CALCULATION AREA. 1700 PRINT :PRINT 1800 GOSUB 16000:REM PRINT FIRST TOTAL ON CRT. 1900 GOSUB 13000:REM PRINT INITIAL TOTAL ON PAPER. 2000 REM ROUTINE TO ENTER FUNCTION ************************** 2010 REM 2020 INPUT "ENTER FUNCTION : ";F$ 2030 F1= 0:REM RESET FLAG TESTING FOR O.K. FUNCTION INPUT. 2040 GOSUB 18000:REM TEST INPUT FUNCTION. 2050 IF F1= 1THEN GOTO 2200:REM F$ IS OK - INPUT N. 2060 IF F1= 2THEN PRINT :GOTO 2210:REM F$ IS OK - SKIP N. 2070 IF F1= 3THEN T= 0:PRINT :GOTO 2210:REM CLR TOTAL ONLY. 2080 IF F1= 4THEN T= 0:M= 0:GOTO 1400:REM RESTART T=0, M=0. 2090 IF F1= 5THEN GOTO 20000:REM END PROGRAM. 2100 PLOT 28,11 2110 PRINT "ILLEGAL FUNCTION ENTRY !!!":FOR I= 1TO 2000:NEXT 2120 PLOT 28,11:GOTO 2000:REM REPEAT INPUT. 2200 PLOT 11:INPUT "ENTER NUMBER : ";N 2210 GOSUB 19000:REM UPDATE TOTAL PER FUNCTION ENTRY. 2700 GOSUB 14000:REM PRINT N AND FUNCTION ON PAPER. 2800 GOSUB 17000:REM PRINT TOTAL ( WITH BACKGROUND ) ON CRT. 2900 GOSUB 15000:REM PRINT TOTAL ON PAPER. 3000 PLOT 28,28,11,28,11,28,11:PRINT :GOTO 2000:REM MOVE UP & REPEAT ENTRY. 10000 REM SBR TO CLEAR SCREEN AND PRINT CRT HEADER. 10100 REM 10200 PLOT 12 10300 PRINT TAB( 15) 10400 PLOT 14,6,76 10500 GOSUB 11000:REM PRINT HEADER TEXT. 10600 PLOT 15,6,2:REM SET NORMAL SCREEN TEXT. 10700 PRINT :PRINT 10800 RETURN 11000 REM TEXT FOR HEADER *********************************** 11100 REM 11200 PRINT " COMPUCOLOR II CALCULATOR " 11300 RETURN 12000 REM SBR TO PRINT HEADER ON PAPER ********************** 12100 REM 12300 PLOT 27,18,B,27,13:REM B= BAUD RATE FOR PRINTER. 12400 PLOT 14 12500 GOSUB 11000:REM HEADER TEXT. 12600 PLOT 15,6,2:REM RETURN TO NORMAL DISPLAY. 12700 PRINT :PRINT 12800 POKE 33265,0 12900 RETURN 13000 REM SBR TO PRINT 1ST TOTAL ON PAPER ******************* 13100 REM 13200 PLOT 27,13 13300 PRINT "CALCULATOR CLEARED ..... TOTAL = ";T 13400 POKE 33265,0 13500 RETURN 14000 REM SBR TO PRINT INPUTTED NO. ON PAPER **************** 14100 REM 14200 PLOT 27,13 14300 IF F1= 2THEN PRINT " ";F$:GOTO 14500 14400 PRINT " ";F$;" ";N 14500 POKE 33265,0 14600 RETURN 15000 REM SBR TO PRINT TOTAL ON PAPER *********************** 15100 REM 15328 PLOT 27,13 15300 PRINT "____________________" 15400 PRINT "TOTAL = ";T; 15450 PRINT TAB( 30)"MEMORY = ";M 15500 POKE 33265,0 15600 RETURN 16000 REM SBR TO PRINT 1ST TOTAL ON CRT ********************* 16100 PLOT 6,127:PRINT "CALCULATOR CLEARED ..... "; 16200 PLOT 6,56:PRINT "TOTASC L = ";T;" " 16300 PLOT 6,2 16400 RETURN 17000 REM SBR TO PRINT TOTAL ON CRT ************************* 17100 IF T< 0GOTO 17130:REM JUMP TO RED BACKGROUND ROUTINE. 17110 PLOT 11,6,56:REM BLK CHRS ON WHITE BACKGROUND. 17120 GOTO 17140:REM PRINT VALUE OF TOTAL. 17130 PLOT 11,6,8:REM BLK CHRS ON RED BACKGROUND. 17140 PRINT "TOTAL = ";T;" "; 17200 IF M< 0GOTO 17230:REM JUMP TO RED BACKGROUND ROUTINE. 17210 PLOT 6,56:REM BLK CHRS ON WHITE BACKGROUND. 17220 GOTO 17240:REM PRINT VALUE IN MEMORY. 17230 PLOT 6,8:REM BLK CHRS ON RED BACKGROUND. 17240 PRINT " MEMORY = ";M;" " 17250 PLOT 6,2 17300 RETURN 18000 REM SBR TO CHECK FUNCTION **************************** 18010 REM 18100 IF F$= "+"THEN F1= 1:REM FUNCTION OK - NEXT GET N. 18110 IF F$= "-"THEN F1= 1 18120 IF F$= "*"THEN F1= 1 18130 IF F$= "/"THEN F1= 1 18140 IF F$= "^"THEN F1= 1 18150 IF F$= ">M"THEN F1= 1 18160 IF F$= "SIN"THEN F1= 1 18170 IF F$= "COS"THEN F1= 1 18180 IF F$= "TAN"THEN F1= 1 18200 IF F$= "A"THEN F1= 2:REM FUNCTION OK - DON'T GET N. 18210 IF F$= "I"THEN F1= 2 18220 IF F$= "CS"THEN F1= 2 18230 IF F$= "+M"THEN F1= 2 18240 IF F$= "-M"THEN F1= 2 18250 IF F$= "*M"THEN F1= 2 18260 IF F$= "/M"THEN F1= 2 18270 IF F$= "CM"THEN F1= 2 18280 IF F$= "RM"THEN F1= 2 18290 IF F$= "LOG"THEN F1= 2 18300 IF F$= "CT"THEN F1= 3:REM CLEAR TOTAL ONLY. 18310 IF F$= "CA"THEN F1= 4:REM CLEAR CALCULATOR AND MEMORY. 18400 IF LEFT$ (F$,1)= "E"THEN F1= 5:REM END PROGRAM. 18900 RETURN 19000 REM SBR TO DO CALCULATION *************************** 19010 REM 19020 IF F$= "+"THEN T= T+ N 19030 IF F$= "-"THEN T= T- N 19040 IF F$= "*"THEN T= T* N 19050 IF F$= "/"THEN T= T/ N 19060 IF F$= "^"THEN T= T^ N 19070 IF F$= "A"THEN T= ABS (T) 19080 IF F$= "I"THEN T= INT (T) 19090 IF F$= "CS"THEN T= T* (- 1) 19100 IF F$= "+M"THEN M= M+ T 19110 IF F$= "-M"THEN M= M- T 19120 IF F$= "*M"THEN M= M* T 19130 IF F$= "/M"THEN M= M/ T 19140 IF F$= "RM"THEN T= M 19150 IF F$= ">M"THEN M= N 19160 IF F$= "CM"THEN M= 0 19170 IF F$= "SIN"THEN T= SIN (N* PI/ 180):REM N IN DEGREES. 19180 IF F$= "COS"THEN T= COS (N* PI/ 180):REM N IN DEGREES. 19190 IF F$= "TAN"THEN T= TAN (N* PI/ 180):REM N IN DEGREES. 19200 IF F$= "LOG"THEN T= LOG (T)/ LOG (10) 19900 RETURN 20000 REM ROUTINE TO END PR0GRAM *************************** 20100 REM 20200 PLOT 27,13:PRINT CHR$ (12):REM PAGE PRINTER PAPER. 20300 POKE 33265,0 20400 PRINT :PRINT 20500 LOAD "MENU":RUN 20600 END