1 REM Ins{nd av John Amsberg <5786> 1985-10-03 09.51.32 100 ! +------------------------------+ 110 ! ! -- CALCMENY.800 -- ! 120 ! ! Utg}va 1.0 83-10-10 ! 130 ! ! av (c) S-] ABRAHAMSSON (105) ! 140 ! ! Samh|rande programfiler ! 150 ! ! CALCMENY.800, CALC1.800 ! 160 ! ! CALC2.TXT, CALC3.800 ! 170 ! ! MODIFIERAT MED KOMPIL OCH ! 180 ! ! BEARBETAT F\R ABC800 OCH 806 ! 190 ! ! SAMT BASIC-II-KORTET 85-10-01! 200 ! ! AV (5786) JOHN AMSBERG ! 210 ! +------------------------------+ 220 ! WIDTH 80 F\R ABC-806 och BASIC-II-KORTET 230 EXTEND : FLOAT : SINGLE : OPTION BASE 0 : DIGITS 6 240 DEF FNIp%(U%) LOCAL I% 250 IF U%=56% I%=PEEK(65122%) OR PEEK(65123%) : POKE 65122%,0% : RETURN I% 260 RETURN INP(U%) 270 FNEND 280 DEF FNFi$(U$) LOCAL U1$=120 290 FOR Slask%=1% TO LEN(U$) 300 IF MID$(U$,Slask%,1%)<>' ' U1$=U1$+MID$(U$,Slask%,1%) 310 NEXT Slask% : RETURN U1$ 320 FNEND 330 DEF FNCh$(U$) LOCAL U1$=120 340 U1$=FNFi$(U$) 350 IF LEN(U1$)=0% RETURN "NUL:" ELSE RETURN U1$ 360 FNEND 370 DEF FNEnd$ 380 END 390 FNEND 400 DIM In$=120%,Ut$=120% 410 DEF FNIn$(U%) 420 IF LEN(In$)>0% RETURN FNId$ 430 INPUT LINE #U%,In$ : IF U%=0% ; #U% 440 In$=LEFT$(In$,LEN(In$)-2%) 450 RETURN FNId$ 460 FNEND 470 DEF FNId$ LOCAL Ut$=120,Kp%,De% 480 Kp%=ASCII(In$) : IF Kp%=34% OR Kp%=39% De%=Kp% ELSE De%=44% 490 Kp%=INSTR(2%+(De%=44%),In$,CHR$(De%)) 500 IF Kp%=0% Ut$=In$ : In$='' : RETURN FNFi$(Ut$) 510 Ut$=MID$(In$,1%-(De%<>44%),Kp%+(De%<>44%)-1%) : IF De%<>44% AND LEN(In$)>Kp%+1% In$=RIGHT$(In$,Kp%+2%) ELSE In$=RIGHT$(In$,Kp%+1%) 520 RETURN Ut$ 530 FNEND 540 ! ======================================== 550 ! ========= MENYN BYGGS UPP ============== 560 ! ======================================== 1000 ; CHR$(12%) 1010 A$='-CALC--KALKYL-PROGRAM F\R ABC800/806/BASIC-II-KORTET-' 1020 ; CUR(1%,11%) A$ 1030 ; CUR(2%,10%) STRING$(55%,127%) 1040 FOR I%=3% TO 20% 1050 ; CUR(I%,10%) STRING$(1%,127%) 1060 NEXT I% 1070 ; CUR(3%,20%) '(PROGRAMMET ANV[NDER STORA BOKST[VER)' 1080 ; CUR(5%,30%) ' MENY ' 1090 FOR J%=3% TO 20% 1100 ; CUR(J%,64%) STRING$(1%,127%) 1110 NEXT J% 1120 ; CUR(21%,10%) STRING$(55%,127%) 1130 ; CUR(8%,23%) '0 - SKAPA NY BLANKETT' 1140 ; CUR(9%,23%) '1 - L[S IN EN BEFINTLIG KALKYL' 1150 ; CUR(10%,23%) '2 - L[SA HJ[LPTEXT' 1160 ; CUR(11%,23%) '3 - AVSLUTA' 1170 ; CUR(18%,13%) 'Ett program av (105) S-] Abrahamsson' 1180 ; CUR(19%,13%) 'Modifierat f|r ABC800/806/BASIC-II-kortet' 1190 ; CUR(20%,13%) 'av (5786) John Amsberg' 1200 ; CUR(13%,23%) '=> V[LJ (0-3) '; 1210 ON ERROR GOTO 1000 1220 M%=VAL(FNIn$(0%)) : In$="" 1230 IF M%<0% OR M%>3% THEN 1000 1240 ON M%+1% GOTO 2000,3000,4000,5000 1250 ! ==================================== 1260 ! ===== NY KALKYLBLANKETT SKAPAS ===== 1270 ! ==================================== 2000 ; CHR$(12%) 2010 ; CUR(1%,13%) A$ 2020 ; CUR(2%,0%) STRING$(78%,127%) 2030 ; CUR(18%,0%) STRING$(78%,127%) 2040 ; CUR(4%,25%) '0. SKAPA NY KALKYLBLANKETT' 2050 ; CUR(5%,25%) STRING$(26%,127%) 2060 ; CUR(7%,17%) '# DU KAN NU SPECIFICERA EN KALKYLBLANKETT' 2070 ; CUR(8%,19%) 'MED ETT ANTAL RADER OCH KOLUMNER' 2080 ; CUR(9%,17%) '# DU KAN OCKS] ANGE HUR M]NGA TECKEN DU' 2090 ; CUR(10%,19%) 'VILL F] PLATS MED I VARJE F[LT (MAX 30)' 2100 ; CUR(11%,17%) '=> ANTAL RADER '; 2110 ON ERROR GOTO 1000 2120 R=VAL(FNIn$(0%)) : In$="" 2130 IF R<1% THEN 2100 2140 ; CUR(12%,17%) '=> ANTAL KOLUMNER '; 2150 K=VAL(FNIn$(0%)) : In$="" 2160 IF K<1% THEN 2140 2170 ; CUR(13%,17%) '=> ANTAL TECKEN '; 2180 L=VAL(FNIn$(0%)) : In$="" 2190 IF L<2% OR L>30% THEN 2170 2200 P=14%+(R*K)*(6%+L) 2210 P=P+14%+(R*K)*(6%+8%) 2220 IF P>17500 THEN ; : ; 'F\R STORT - MINSKA N]GOT V[RDE' : GOTO 2060 2230 R%=R : K%=K : L%=L 2240 PREPARE FNFi$('CALCOM.DAT') AS FILE 1% 2250 ; #1% '$$' : ; #1%,R%-1% : ; #1%,K%-1% : ; #1%,L% 2260 CLOSE 1% 2270 ; CUR(22%,0%) '= LADDAR HUVUDPROGRAMMET CALC3.800 =';TAB(79%); 2280 CHAIN FNCh$('CALC3.bas') 2290 ! ===================================== 2300 ! ===== L[SER IN BEFINTLIG KALKYL ===== 2310 ! ===================================== 3000 ; CHR$(12%) 3010 ; CUR(2%,11%) A$ 3020 ; CUR(3%,10%) STRING$(56%,127%) 3030 ; CUR(5%,14%) 'DU F]R ANGE NAMNET P] DEN KALKYL DU VILL L[SA IN' 3040 ; CUR(7%,14%) 'NAMN '; 3050 N$=FNIn$(0%) : In$="" 3060 IF N$='' THEN 1000 3070 IF LEN(N$)>8% THEN 3040 3080 IF ASCII(N$)<65% OR ASCII(N$)>93% THEN 3040 3090 ON ERROR GOTO 3180 3100 OPEN FNFi$(N$+'.CA3') AS FILE 1% 3110 CLOSE 1% 3120 ON ERROR GOTO 3090 3130 PREPARE FNFi$('CALCOM.DAT') AS FILE 1% 3140 ; #1% N$ : ; #1%,0% : ; #1%,0% : ; #1%,0% 3150 CLOSE 1% 3160 ; CUR(22%,0%) '= LADDAR HUVUDPROGRAMMET CALC3.800 =';TAB(79%); 3170 CHAIN FNCh$('CALC3.800') 3180 ; : ; 'KALKYLEN FINNS INTE - ANGE NYTT NAMN' 3190 GOTO 3040 3200 ! =============================== 3210 ! ======= L[SER HJ[LPTEXTEN ===== 3220 ! =============================== 4000 ; CUR(22%,10%) '=LADDAR TEXTL[SNINGSPROGRAMMET CALC1.800=';TAB(79%); 4010 CHAIN 'CALC1.bas' 4020 ! ================================== 4030 ! ====== AVSLUTAR PROGRAMMET ======= 4040 ! ================================== 5000 PREPARE FNFi$('CALCOM.DAT') AS FILE 1% 5010 ; #1% '$' : ; #1%,0% : ; #1%,0% : ; #1%,0% 5020 CLOSE 1% 5030 END