   10 PROGRAM "hoszuks.bas"
   20 SET FKEY5CHR$(161)&CHR$(165)&"TEXT 80"&CHR$(13)
   30 OUT 191,12
   40 LET HH=20 ! helyisegek szama
   50 STRING D$*15,INK0$*3,INK1$*3,INK2$*3,BILL$*1,HN$(1TOHH)*12
   60 NUMERIC MN,I,J,KK,LL,TOT,HS
   70 NUMERIC T(1TOHH,1TO3),K(1TOHH,1TO2),P(1TOHH,1TO3)
   75 NUMERIC S(1TOHH),L(1TOHH),M(1TOHH)
   80 NUMERIC V(1TOHH),E(1TOHH),X(1TOHH),G(1TOHH)
   85 NUMERIC B(1TOHH),H(1TOHH),O(1TOHH),CS(1TOHH)
   90 NUMERIC R(1TOHH),Z(1TOHH,1TO8),U(1TOHH,1TO8),F(1TOHH,1TO8)
   95 NUMERIC C(1TOHH,1TO8),A(1TOHH,1TO8),Y(1TOHH,1TO8)
  100 NUMERIC D(HH*8*4),Q(HH*8*4),W(HH*8*4)
  110 LET INK0$=CHR$(27)&"I"&CHR$(0)
  120 LET INK3$=CHR$(27)&"I"&CHR$(6)
  130 LET INK1$=CHR$(27)&"I"&CHR$(4)
  140 LET INK2$=CHR$(27)&"I"&CHR$(2)
  150 LET TOT=0:LET HS=0
  160 IMAGE :Höfok= +££.£æC          Méretek=££.£x££.£x££.£=££££.£m3
  170 IMAGE :##              ££./%% helyiség, <££££££££££££
  180 IMAGE :<£££££££££££    ££   >£££££££    -££.£   +££.£ >££££££  -££££.£
  190 SET CHARACTER151,28,54,54,28,0,0,0,0,0
  200 SET CHARACTER137,16,24,44,44,44,70,70,255,0
  210 !
  220 !
  230 ! a fo ciklus 
  240 CALL INIT
  250 DO 
  260   LET MN=FOMENU ! Fomenu hivasa parameter atadassal
  270   SELECT CASEMN
  280   CASE 1 ! uj adatok
  290     CALL BEVITEL
  300   CASE 2 ! betoltes
  310     CALL BETOLTES
  320   CASE 3 ! kimentes
  330     CALL KIMENTES
  340   CASE 5 ! nyomtatas
  350     CALL JAVIT
  360   CASE 4 ! kiirasok
  370     CALL KIIRAS
  380     ! CALL SZAMOL
  390   CASE ELSE ! prg vege
  400     TEXT 
  410     PRINT :PRINT "Remélem segitettem."
  420     PRINT :PRINT "       Köszönöm a türelmed!"
  430     END 
  440   END SELECT 
  450 LOOP 
  460 !
  470 !
  480 DEF BEVITEL
  490   DO 
  500     TEXT 80:PRINT :PRINT 
  510     INPUT PROMPT"Helyiségek szåma?: ":HS
  520   LOOP UNTILHS>0ANDHS<=HH
  530   LET T0=0:LET SS=1
  540   FOR I=1TOHS
  550     CALL HELYISEG(I)
  560     PRINT :PRINT "Akarsz potlékokkal szåmolni? (I=igen, mås=nem)"
  570     CALL BILL
  580     IF BILL$="I"THEN
  590       CALL POTLEKOK(I)
  600     END IF 
  610   NEXT 
  620   CALL SZAMOL
  630 END DEF 
  640 !
  650 DEF HELYISEG(I)
  660   DO 
  670     TEXT 
  680     PRINT TAB(15);I;". helyiség"
  690     PRINT TAB(15);"--------------":PRINT 
  700     INPUT PROMPT"A helyiség megnevezése (max.10 kar.):":HN$(I)
  710     PRINT 
  720     PRINT "A helyiség méretei:"
  730     PRINT "-------------------"
  740     INPUT PROMPT"hosszusåg (m):":L(I)
  750     INPUT PROMPT"szélesség (m):":S(I)
  760     INPUT PROMPT"magassåg  (m):":M(I)
  770     LET V(I)=ROUND(L(I)*M(I)*S(I),2)
  780     PRINT "légtérfogat  :";V(I);"m3":PRINT 
  790     INPUT PROMPT"A helyiség megkivånt hömérséklete   (æC):":T(I,3)
  800     INPUT PROMPT"A födém höåtbocsåtåsi tényezöje (W/m2*K):":K(I,1)
  810     INPUT PROMPT"A felsö légtér hömérséklete         (æC):":T(I,1)
  820     INPUT PROMPT"A padlo höåtbocsåtåsi tényezöje (W/m2*K):":K(I,2)
  830     INPUT PROMPT"Az also légtér hömérséklete         (æC):":T(I,2)
  840     SET #102:INK2
  850     PRINT :PRINT "Helyesek az adatok? (i=igen, mås=nem)"
  860     SET #102:INK0
  870     CALL BILL
  880   LOOP UNTILBILL$="I"
  890   CALL FALAK(I)
  900 END DEF 
  910 !
  920 DEF FALAK(I)
  930   DO 
  940     TEXT 
  950     PRINT TAB(16);STR$(I);". helyiség"
  960     PRINT TAB(15);"---------------":PRINT 
  970     INPUT PROMPT"Hatårolo légterek szåma: ":R(I)
  980   LOOP WHILER(I)<1ORR(I)>8
  990   FOR J=1TOR(I)
 1000     CALL FALRESZ(I,J)
 1010   NEXT 
 1020 END DEF 
 1030 !
 1040 DEF FALRESZ(I,J)
 1050   DO 
 1060     TEXT 
 1070     PRINT :PRINT "  ";STR$(I);". helyiség, ";STR$(J);". falrész"
 1080     PRINT "----------------------------------":PRINT 
 1090     INPUT PROMPT"hatårolo légtér hömérséklete (æC):":Z(I,J)
 1100     INPUT PROMPT"a falrész hosszusåga          (m):":FH
 1110     INPUT PROMPT"a falrész magassåga           (m):":FM
 1120     LET F(I,J)=FH*FM:PRINT "a falrész teljes felülete       :";F(I,J);"m2"
 1130     INPUT PROMPT"a fal höåtbocsåtåsi tényezöje (W/m2*K):":A(I,J)
 1140     DO 
 1150       PRINT :INPUT PROMPT"nyilåszårok szåma :":Y(I,J)
 1160     LOOP WHILEY(I,J)<0ORY(I,J)>4
 1170     IF Y(I,J)<>0THEN
 1180       FOR KK=1TOY(I,J)
 1190         CALL NYILZAR(I,J,KK)
 1200       NEXT 
 1210     END IF 
 1220     PRINT :PRINT #102:INK2$;"Helyesek az adatok? (i=igen, mås=nem)";INK0$
 1230     CALL BILL
 1240   LOOP UNTILBILL$="I"
 1250 END DEF 
 1260 !
 1270 DEF NYILZAR(I,J,K)
 1280   PRINT :PRINT "     ";K;". nyilaszaro"
 1290   PRINT "     -----------------"
 1300   INPUT PROMPT"A nyilåszåro hossza    (m): ":FH
 1310   INPUT PROMPT"A nyilåszåro magassåga (m): ":FM
 1320   LET D(I*HH+J*8+K)=FH*FM:PRINT "A nyilåszåro felülete (m2):";D(I*HH+J*8+K)
 1330   INPUT PROMPT"A nyilåszåro höåtbocsåtåsi tényezöje (W/(m2*K)): ":Q(I*HH+J*8+K)
 1340 END DEF 
 1350 !
 1360 DEF POTLEKOK(I)
 1370   DO 
 1380     INPUT PROMPT"Egtåjpotlék (%)       :":E(I)
 1390     INPUT PROMPT"Szélpotlék (%)        :":X(I)
 1400     INPUT PROMPT"Felfütési potlék (%)  :":G(I)
 1410     INPUT PROMPT"Kürtöhatås potlék (%) :":H(I)
 1420     PRINT :PRINT #102:INK2$;"Helyesek az adatok? (i=igen, mås=nem)";INK0$
 1430     CALL BILL
 1440   LOOP UNTILBILL$="I"
 1450 END DEF 
 1460 !
 1470 DEF SZAMOL
 1480   LET TOT=0
 1490   FOR I=1TOHS
 1500     LET P(I,3)=0:LET O(I)=1 ! helyisegP=0, potlekok=0
 1510     LET P(I,1)=L(I)*S(I)*K(I,1)*(T(I,3)-T(I,1)) ! mennyezetP
 1520     LET P(I,3)=P(I,3)+P(I,1) ! helyisegP=helyisegP+mennyezetP
 1530     LET P(I,2)=L(I)*S(I)*K(I,2)*(T(I,3)-T(I,2)) ! padloP
 1540     LET P(I,3)=P(I,3)+P(I,2) ! helyisegP=helyisegP+padloP
 1550     LET V(I)=L(I)*S(I)*M(I) ! legkobmeter
 1560     FOR J=1TOR(I) ! falak
 1570       LET C(I,J)=F(I,J) ! falresz felulete
 1580       FOR KK=1TOY(I,J) ! nyilaszarok
 1590         LET C(I,J)=C(I,J)-D(I*HH+J*8+KK) ! fal-nyilaszaro felulet
 1600         LET W(I*HH+J*8+KK)=D(I*HH+J*8+KK)*Q(I*HH+J*8+KK)*(T(I,3)-Z(I,J)) ! nyilaszaroP
 1610         LET P(I,3)=P(I,3)+W(I*HH+J*8+KK) ! helyisegP=helyisegP+nyilaszaroP
 1620       NEXT 
 1630       LET U(I,J)=C(I,J)*A(I,J)*(T(I,3)-Z(I,J)) ! falreszP
 1640       LET P(I,3)=P(I,3)+U(I,J) ! helyisegP=helyisegP+falreszP
 1650     NEXT 
 1660     LET O(I)=O(I)+(E(I)+X(I)+G(I)+B(I)+H(I))/100 ! potlekok osszesen
 1670     LET P(I,3)=P(I,3)*O(I) ! helyisegP=helyisegP*potlekok
 1680     LET TOT=TOT+P(I,3) ! totalP=totalP+helyisegP
 1690   NEXT 
 1700 END DEF 
 1710 !
 1720 DEF STRG$(X,Y)
 1730   STRING A$*15,B$*15,C$*20
 1740   LET B$="      "&STR$(IP(X))&"."
 1750   LET C$=STR$(ROUND(FP(X),Y))&"0000000"
 1760   LET A$=B$(LEN(B$)-3:LEN(B$))&C$(2:Y+1)
 1770   LET STRG$=A$
 1780 END DEF 
 1790 !
 1800 DEF JAVIT
 1810   TEXT 80
 1820   PRINT AT4,1:"Hånyas helyiséget mutassam:"
 1830   INPUT W$
 1840   LET XX=VAL(W$)
 1850   IF XX<1ANDXX>HSTHEN
 1860     PRINT "!! Hibås helyiség szåm !!":PRINT 
 1870     GOTO  1820
 1880   END IF 
 1890   CALL MEGJELENIT(XX)
 1900   CALL MODOSIT(XX)
 1910   !CALL BILL
 1920 END DEF 
 1930 !
 1940 DEF MODOSIT(HSZ)
 1950   PRINT #102,AT1,70:INK2$;"Modositås";
 1960   PRINT #102,AT2,70:"----------";
 1970   PRINT #102,AT3,70:"+Helyiség";
 1980   PRINT #102,AT4,70:"-Helyiség";
 1990   PRINT #102,AT5,70:"+Falrész";
 2000   PRINT #102,AT6,70:"-Falrész";
 2010   PRINT #102,AT7,70:"+Nyilåsz.";
 2020   PRINT #102,AT8,70:"-Nyilåsz.";
 2030   PRINT #102,AT9,70:" Mennyezet";
 2040   PRINT #102,AT10,70:" Padlo ";
 2050   PRINT #102,AT11,70:" Belsö æC";
 2060   PRINT #102,AT12,70:" k-tenyezö";
 2070   PRINT #102,AT13,70:" Potlékok";INK0$;
 2080   LET ME=1:LET MR=ME
 2090   DO 
 2100     PRINT #102,AT2+MR,67:"   ";
 2110     LET MR=ME
 2120     PRINT #102,AT2+ME,67:">>>";
 2130     CALL BILL
 2140     SELECT CASEBILL$
 2150     CASE CHR$(176)
 2160       LET ME=ME-1:LET ME=MAX(ME,1)
 2170     CASE CHR$(180)
 2180       LET ME=ME+1:LET ME=MIN(ME,11)
 2190     CASE CHR$(32),CHR$(13)
 2200       SELECT CASEME
 2210       CASE 1
 2220         CALL HPLUSZ
 2230       CASE 2
 2240         CALL HMINUSZ(HSZ)
 2250       CASE 3
 2260         !
 2270       CASE 4
 2280         !
 2290       CASE 5
 2300         !
 2310       CASE 6
 2320         !
 2330       CASE 7
 2340         !
 2350       CASE 8
 2360         !
 2370       CASE 9
 2380         !
 2390       CASE 10
 2400         !
 2410       CASE 11
 2420         !
 2430       CASE ELSE
 2440       END SELECT 
 2450     CASE CHR$(27)
 2460       FOR ME=1TO14
 2470         PRINT #102,ATME,70:"          ";
 2480       NEXT 
 2490       EXIT DEF
 2500     CASE ELSE
 2510     END SELECT 
 2520   LOOP 
 2530 END DEF 
 2540 !
 2550 DEF MEGJELENIT(I)
 2560   IF I=0THEN
 2570     TEXT 40
 2580     PRINT "A lakås teljes höszükséglete :":PRINT 
 2590     FOR II=1TOHS
 2600       PRINT II,HN$(II);TAB(22);ROUND(P(II,3),1);"W"
 2610     NEXT 
 2620     PRINT :PRINT ,"Összesen:";TAB(22);ROUND(TOT,1);"W"
 2630     EXIT DEF
 2640   END IF 
 2650   TEXT 80
 2660   PRINT #102:INK1$;"←↓";INK0$;"=Elözö   ";INK1$;"↑→";INK0$;"=Következö   ";INK1$;"J";INK0$;"=javitås   ";INK1$;"T";INK0$;"=Összesités   ";INK1$;"ESC";INK0$;"=Fömenü"
 2670   PRINT #102,USING 170:I,HS,HN$(I)
 2680   PRINT #102,USING 160:T(I,3),L(I),S(I),M(I),V(I)
 2690   PRINT #102:"================================================================"
 2700   PRINT #102:"Hatårolo      nyilås-  felület   Külsö     Çt      k     Fütési                 szerkezet      zåro       m2     höm.æC    æC    W/m2*K  telj. W"
 2710   PRINT #102:"................................................................"
 2720   PRINT #102,AT8,1:;
 2730   PRINT #102,USING 180:"Mennyezet","",STRG$(L(I)*S(I),2),T(I,1),T(I,3)-T(I,1),STRG$(K(I,1),2),P(I,1)
 2740   PRINT #102,USING 180:"Padlo","",STRG$(L(I)*S(I),2),T(I,2),T(I,3)-T(I,2),STRG$(K(I,2),2),P(I,2)
 2750   LET HA=1
 2760   FOR J=1TOR(I)
 2770     LET HA=HA+1
 2780     IF MOD(HA,13)=0THEN
 2790     END IF 
 2800     PRINT #102,USING 180:STR$(J)&".falrész","",STRG$(C(I,J),2),Z(I,J),T(I,3)-Z(I,J),STRG$(A(I,J),2),U(I,J)
 2810     FOR KK=1TOY(I,J)
 2820       LET HA=HA+1
 2830       IF MOD(HA,13)=0THEN
 2840       END IF 
 2850       PRINT #102,USING 180:" '--→",STR$(KK)&".",STRG$(D(I*HH+J*8+KK),2),Z(I,J),T(I,3)-Z(I,J),STRG$(Q(I*HH+J*8+KK),2),W(I*HH+J*8+KK)
 2860     NEXT 
 2870   NEXT 
 2880   PRINT #102,AT22,1:"================================================================"
 2890   PRINT #102,AT23,1:"Potlék= Eg:";E(I);" Sz:";X(I);" Ff:";G(I);" Bm:";B(I);" Kü:";H(I);" Lcs:";CS(I)
 2900   PRINT #102,AT24,1:"Helyiség höszükséglete:";INT(P(I,3));"W,";INT(P(I,3)/V(I));"W/m3"
 2910 END DEF 
 2920 !
 2930 DEF KIIRAS
 2940   STRING SZAM$*2
 2950   TEXT 80
 2960   LET I=1:LET SZAM$="":LET NUM=1
 2970   DO 
 2980     CALL MEGJELENIT(I)
 2990     CALL BILL
 3000     SELECT CASEBILL$
 3010     CASE CHR$(176),CHR$(188)
 3020       LET I=I+1:LET I=MIN(I,HS)
 3030     CASE CHR$(180),CHR$(184)
 3040       LET I=I-1:LET I=MAX(I,1)
 3050     CASE CHR$(27)
 3060       EXIT DEF
 3070     CASE "T"
 3080       LET I=0
 3090     CASE "J"
 3100       CALL MEGJELENIT(I)
 3110       CALL MODOSIT(I)
 3120     CASE "0"TO"9"
 3130       LET SZAM$=SZAM$&BILL$
 3140       PRINT #102,AT2,1:INK2$;SZAM$;
 3150       CALL BILL
 3160       IF BILL$<"0"ANDBILL$>"9"THEN 3150
 3170       LET SZAM$=SZAM$&BILL$
 3180       PRINT #102,AT2,1:SZAM$;INK0$
 3190       LET NUM=VAL(SZAM$)
 3200       LET SZAM$=""
 3210       IF NUM<=HSANDNUM>0THENLET I=NUM:LET NUM=0
 3220       WAIT 1
 3230     CASE ELSE
 3240     END SELECT 
 3250   LOOP 
 3260 END DEF 
 3270 !
 3280 DEF BETOLTES
 3290   TEXT 40
 3300   PRINT :PRINT "Tegyél be kazettåt és inditsd el a magnot ha szükséges..."
 3310   PRINT :PRINT ">>>>  Adatållomåny betöltése  <<<<"
 3320   INPUT PROMPT"File név :":D$
 3330   POKE 56,201
 3340   OPEN #1:D$ACCESSINPUT
 3350   PRINT " 1/5. ";
 3360   INPUT #1:D$
 3370   INPUT #1:HS
 3380   INPUT #1:TOT
 3390   FOR I=1TOHS
 3400     INPUT #1:S(I),L(I),M(I),V(I),E(I),X(I),G(I),B(I),H(I),O(I),R(I),CS(I)
 3410     INPUT #1:HN$(I)
 3420   NEXT 
 3430   PRINT " 2/5. ";
 3440   FOR I=1TOHS
 3450     FOR J=1TO8
 3460       INPUT #1:A(I,J),C(I,J),F(I,J),U(I,J),Y(I,J),Z(I,J)
 3470     NEXT 
 3480   NEXT 
 3490   PRINT " 3/5. ";
 3500   FOR I=1TOHS
 3510     FOR J=1TO3
 3520       INPUT #1:T(I,J),P(I,J)
 3530     NEXT 
 3540   NEXT 
 3550   PRINT " 4/5. ";
 3560   FOR I=1TOHS
 3570     FOR J=1TO2
 3580       INPUT #1:K(I,J)
 3590     NEXT 
 3600   NEXT 
 3610   PRINT " 5/5. ";
 3620   FOR I=1TOHS*8*4
 3630     INPUT #1:D(I),Q(I),W(I)
 3640   NEXT 
 3650   CLOSE #1
 3660   POKE 56,245
 3670 END DEF 
 3680 !
 3690 DEF KIMENTES
 3700   TEXT 40
 3710   PRINT :PRINT "Tegyél be kazettåt és inditsd el a magnot ha szükséges..."
 3720   PRINT :PRINT ">>>>  Adatållomåny kimentése  <<<<"
 3730   INPUT PROMPT"File név :":D$
 3740   POKE 56,201
 3750   OPEN #1:D$ACCESSOUTPUT
 3760   PRINT " 1/5. ";
 3770   PRINT #1:D$
 3780   PRINT #1:HS
 3790   PRINT #1:TOT
 3800   FOR I=1TOHS
 3810     PRINT #1:S(I)
 3820     PRINT #1:L(I)
 3830     PRINT #1:M(I)
 3840     PRINT #1:V(I)
 3850     PRINT #1:E(I)
 3860     PRINT #1:X(I)
 3870     PRINT #1:G(I)
 3880     PRINT #1:B(I)
 3890     PRINT #1:H(I)
 3900     PRINT #1:O(I)
 3910     PRINT #1:R(I)
 3920     PRINT #1:CS(I)
 3930     PRINT #1:HN$(I)
 3940   NEXT 
 3950   PRINT " 2/5. ";
 3960   FOR I=1TOHS
 3970     FOR J=1TO8
 3980       PRINT #1:A(I,J)
 3990       PRINT #1:C(I,J)
 4000       PRINT #1:F(I,J)
 4010       PRINT #1:U(I,J)
 4020       PRINT #1:Y(I,J)
 4030       PRINT #1:Z(I,J)
 4040     NEXT 
 4050   NEXT 
 4060   PRINT " 3/5. ";
 4070   FOR I=1TOHS
 4080     FOR J=1TO3
 4090       PRINT #1:T(I,J)
 4100       PRINT #1:P(I,J)
 4110     NEXT 
 4120   NEXT 
 4130   PRINT " 4/5. ";
 4140   FOR I=1TOHS
 4150     FOR J=1TO2
 4160       PRINT #1:K(I,J)
 4170     NEXT 
 4180   NEXT 
 4190   PRINT " 5/5. ";
 4200   FOR I=1TOHS*8*4
 4210     PRINT #1:D(I)
 4220     PRINT #1:Q(I)
 4230     PRINT #1:W(I)
 4240   NEXT 
 4250   CLOSE #1
 4260   POKE 56,245
 4270 END DEF 
 4280 !
 4290 DEF BILL
 4300   DO 
 4310     GET BILL$
 4320   LOOP WHILEBILL$=""
 4330   LET BILL$=UCASE$(BILL$)
 4340 END DEF 
 4350 !
 4360 DEF INIT
 4370   POKE 56,201
 4380   LET N0=0
 4390   PRINT "A våltozok inicializålåsa - 1/5, ";
 4400   FOR I=1TOHH
 4410     LET S(I),L(I),M(I),V(I),E(I),X(I),G(I),B(I),CS(I)=N0
 4420     LET H(I),O(I),R(I)=N0:LET HN$(I)=".."&STR$(I)&".."
 4430   NEXT 
 4440   PRINT "2/5, ";
 4450   FOR I=1TOHH
 4460     FOR J=1TO8
 4470       LET Z(I,J),U(I,J),F(I,J),C(I,J),A(I,J),Y(I,J)=N0
 4480     NEXT 
 4490   NEXT 
 4500   PRINT "3/5, ";
 4510   FOR I=1TOHH
 4520     FOR J=1TO3
 4530       LET T(I,J),P(I,J)=N0
 4540     NEXT 
 4550   NEXT 
 4560   PRINT "4/5, ";
 4570   FOR I=1TOHH
 4580     FOR J=1TO2
 4590       LET K(I,J)=N0
 4600     NEXT 
 4610   NEXT 
 4620   PRINT "5/5"
 4630   FOR I=1TOHH*8*4
 4640     LET D(I),Q(I),W(I)=N0
 4650   NEXT 
 4660   LET HS,TOT=N0:LET D$="haz.dat"
 4670   POKE 56,245
 4680   PRINT "Inicializålås vége..."
 4690 END DEF 
 4700 !
 4710 DEF FOMENU
 4720   NUMERIC Y,YR
 4730   TEXT 40
 4740   PRINT "   ■■■■■ HÖSZÜKSEGLET-SZÅMITÅS ■■■■■":PRINT 
 4750   PRINT #102:
 4760   PRINT #102:INK2$;"     1 ";INK0$;"Uj adatok bevitele"
 4770   PRINT #102:
 4780   PRINT #102:INK2$;"     2 ";INK0$;"Adatok betöltése tårolorol"
 4790   PRINT #102:
 4800   PRINT #102:INK2$;"     3 ";INK0$;"Adatok rögzitése tårolora"
 4810   PRINT #102:
 4820   PRINT #102:INK2$;"     4 ";INK0$;"Eredmények megjelenitése"
 4830   PRINT #102:
 4840   PRINT #102:INK2$;"     5 ";INK0$;"Eredmények nyomtatåsa"
 4850   PRINT #102:
 4860   ! PRINT £102:INK2$;"     6 ";INK0$;"Rövid leirås "
 4870   ! PRINT £102:
 4880   PRINT #102:INK2$;"     6 ";INK0$;"Program befejezése"
 4890   PRINT #102:
 4900   LET Y=1:LET YR=Y
 4910   DO 
 4920     PRINT #102,AT2+YR*2,2:"   "
 4930     PRINT #102,AT2+Y*2,2:">>>"
 4940     CALL BILL
 4950     SELECT CASEBILL$
 4960     CASE CHR$(176) ! fel
 4970       LET YR=Y:LET Y=Y-1:LET Y=MAX(1,Y)
 4980     CASE CHR$(180) ! le
 4990       LET YR=Y:LET Y=Y+1:LET Y=MIN(6,Y)
 5000     CASE CHR$(32),CHR$(13) ! space,enter
 5010       EXIT DO
 5020     CASE ELSE
 5030     END SELECT 
 5040   LOOP 
 5050   LET FOMENU=Y
 5060 END DEF 
 5070 !
 5080 DEF HPLUSZ
 5090   IF HS+1<=HHTHEN
 5100     LET HS=HS+1
 5110     CALL HELYISEG(HS)
 5120   ELSE 
 5130     PRINT "Ehhez a müvelethez mår nincs elég memoria!"
 5140   END IF 
 5150 END DEF 
 5160 !
 5170 DEF HMINUSZ(HSZ)
 5175   NUMERIC I,J,K
 5180   TEXT 
 5190   PRINT "Ez a helyiség törlésre kerül!"
 5200   PRINT "Jol meggondoltad? (I=igen, mås=nem)"
 5210   CALL BILL
 5220   IF BILL$="I"THEN
 5230     IF HS=HHTHEN
 5232       LET HS=HS-1
 5235       EXIT DEF
 5238     END IF 
 5240     LET HS=HS-1
 5250     PRINT "Helyiség törlése - 1/5, ";
 5260     FOR I=HSZTOHS
 5270       LET S(I)=S(I+1):LET L(I)=L(I+1):LET M(I)=M(I+1):LET V(I)=V(I+1)
 5280       LET E(I)=S(I+1):LET X(I)=X(I+1):LET G(I)=G(I+1):LET B(I)=B(I+1)
 5290       LET H(I)=H(I+1):LET O(I)=O(I+1):LET R(I)=R(I+1):LET HN$(I)=HN$(I+1)
 5300     NEXT 
 5310     PRINT "2/5, ";
 5320     FOR I=HSZTOHS
 5330       FOR J=1TO8
 5340         LET Z(I,J)=Z(I+1,J):LET U(I,J)=U(I+1,J):LET F(I,J)=F(I+1,J)
 5350         LET C(I,J)=C(I+1,J):LET A(I,J)=A(I+1,J):LET Y(I,J)=Y(I+1,J)
 5360       NEXT 
 5370     NEXT 
 5380     PRINT "3/5, ";
 5390     FOR I=HSZTOHS
 5400       FOR J=1TO3
 5410         LET T(I,J)=T(I+1,J):LET P(I,J)=P(I+1,J)
 5420       NEXT 
 5430     NEXT 
 5440     PRINT "4/5, ";
 5450     FOR I=HSZTOHS
 5460       FOR J=1TO2
 5470         LET K(I,J)=K(I+1,J)
 5480       NEXT 
 5490     NEXT 
 5500     PRINT "5/5"
 5510     FOR I=HSZTOHS*8*4
 5520       LET D(I)=D(I+1):LET Q(I)=Q(I+1):LET W(I)=W(I+1)
 5530     NEXT 
 5540     CALL SZAMOL
 5560     PRINT "törlés vége..."
 5570   END IF 
 5580 END DEF 
 6000 DEF HMIN(HSZ)
 6005   PRINT "2/5, ";
 6010   NUMERIC I,J,K
 6020   TEXT 
 6030   PRINT "Ez a helyiség törlésre kerül!"
 6040   PRINT "Jol meggondoltad? (I=igen, mås=nem)"
 6050   CALL BILL
 6060   IF BILL$="I"THEN
 6070     IF HS=HHTHEN
 6080       LET HS=HS-1
 6090       EXIT DEF
 6100     END IF 
 6110     LET HS=HS-1
 6120     PRINT "Helyiség törlése - 1/5, ";
 6130     FOR I=HSZTOHS
 6140       LET II=I+1
 6200       FOR J=1TO8
 6210         CALL FALMIN(I,J)
 6230       NEXT 
 6240       LET S(I)=S(II):LET L(I)=L(II):LET M(I)=M(II):LET V(I)=V(II)
 6250       LET E(I)=S(II):LET X(I)=X(II):LET G(I)=G(II):LET B(I)=B(II)
 6260       LET H(I)=H(II):LET O(I)=O(II):LET R(I)=R(II):LET HN$(I)=HN$(II)
 6270       FOR J=1TO3
 6280         LET T(I,J)=T(II,J):LET P(I,J)=P(II,J)
 6290       NEXT 
 6330       FOR J=1TO2
 6340         LET K(I,J)=K(II,J)
 6350       NEXT 
 6405     NEXT 
 6410     CALL SZAMOL
 6420     PRINT "törlés vége..."
 6430   END IF 
 6440 END DEF 
 7000 DEF FALMIN(I,J)
 7010   NUMERIC K
 7020   LET R(I)=R(I)-1
 7040   IF R(I)THEN
 7100     FOR K=1TO4
 7110       CALL NYMIN(I,J,K)
 7120     NEXT 
 7150     LET K=I+1
 7210     LET Z(I,J)=Z(K,J):LET U(I,J)=U(K,J):LET F(I,J)=F(K,J)
 7220     LET C(I,J)=C(K,J):LET A(I,J)=A(K,J):LET Y(I,J)=Y(K,J)
 7300   END IF 
 7900 END DEF 
 8000 DEF NYMIN(I,J,K)
 8010   LET Y(I,J)=Y(I,J)-1
 8020   IF K=4THENEXIT DEF
 8050   LET I=I*HH+J*8+K
 8060   LET J=I+1
 8070   LET D(I)=D(J):LET Q(I)=Q(J):LET W(I)=W(J)
 8399 END DEF 

