home *** CD-ROM | disk | FTP | other *** search
/ Sauce 'n' Code 1 / sauce-n-code-01.adf / ASCII_Source / PaletteED.asc < prev    next >
Text File  |  1995-05-07  |  18KB  |  663 lines

  1. '
  2. ' Palette accessory by Janne Kalliola
  3. '
  4. Set Accessory 
  5. Global VARI,VARI_MAKS
  6. Global PAIKKA,PAIKKA_MAKS
  7. Resource Screen Open 7,640,87,0
  8. Cls 0
  9. Screen Open 6,320,20,64,Lowres
  10. Curs Off 
  11. Flash Off 
  12. Cls 0
  13. Screen Display 6,,Y Hard(7,0)+62,,
  14. If Prg Under=1
  15.    For I=0 To 5
  16.       Trap Screen Hide I
  17.    Next 
  18. End If 
  19. A$="L: Let RA=Y; Jump L"
  20. Channel 0 To Screen Display 7
  21. Channel 1 To Screen Display 6
  22. Amal 0,A$
  23. A$="L: Let Y=RA+62; Jump L"
  24. Amal 1,A$
  25. Amal On 
  26. Erase 1
  27. Erase 2
  28. Reserve As Palette 1,1
  29. Reserve As Palette 2,1
  30. Pal To Bank 2
  31. Screen 7
  32. A$="SV 0,'Load';"
  33. A$=A$+"SV 1,'Save';"
  34. A$=A$+"SV 2,'Merge';"
  35. A$=A$+"SV 3,'Erase';"
  36. A$=A$+"SV 4,'Quit';"
  37. A$=A$+"SV 5,'Delete';"
  38. A$=A$+"SV 6,'Insert';"
  39. A$=A$+"SV 7,'Copy';"
  40. A$=A$+"SV 8,'Swap';"
  41. A$=A$+"SV 9,'Spread';"
  42. A$=A$+"SV 10,'Undo';"
  43. A$=A$+"SV 11,'+';"
  44. A$=A$+"SV 12,'-';"
  45. A$=A$+"SV 13,'R';"
  46. A$=A$+"SV 14,'G';"
  47. A$=A$+"SV 15,'B';"
  48. A$=A$+"SV 16,'P.Swap';"
  49. A$=A$+"SV 17,'Unfold';"
  50. A$=A$+"SV 18,'Grab';"
  51. A$=A$+"SV 19,'Get IFF';"
  52. A$=A$+"SV 20,'Palette Editor v1.0';"
  53. A$=A$+"SV 21,'P.Copy';"
  54. A$=A$+"SV 22,'Command';"
  55. A$=A$+"SV 23,'Screen';"
  56. A$=A$+"BUtton 1,0,0,24,10,0,0,1;[UNpack 0,0,22 BP+;][]"
  57. A$=A$+"BUtton 2,24,0,552,10,0,0,1;[LIne 0,0,41,552;PRint 8,1,20 VA,7;][ScreenMove;]"
  58. A$=A$+"LIne 576,0,41,640;"
  59. A$=A$+"BUtton 3,0,11,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,0 VA,3;][]"
  60. A$=A$+"BUtton 4,0,21,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,1 VA,3;][]"
  61. A$=A$+"BUtton 5,0,31,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 12,1,2 VA,3;][]"
  62. A$=A$+"BUtton 6,0,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 12,1,3 VA,3;][]"
  63. A$=A$+"BUtton 7,0,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,4 VA,3;][]"
  64. A$=A$+"BUtton 8,64,11,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,5 VA,3;][]"
  65. A$=A$+"BUtton 9,64,21,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,6 VA,3;][]"
  66. A$=A$+"BUtton 10,64,31,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 28,1,11 VA,3;][]"
  67. A$=A$+"BUtton 11,64,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 28,1,12 VA,3;][]"
  68. A$=A$+"BUtton 12,64,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,7 VA,3;][]"
  69. A$=A$+"BUtton 13,128,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,8 VA,3;][]"
  70. A$=A$+"BUtton 14,192,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,9 VA,3;][]"
  71. A$=A$+"BUtton 18,256,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,5 VA,3;][]"
  72. A$=A$+"BUtton 15,320,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,10 VA,3;][]"
  73. A$=A$+"BUtton 16,384,51,32,10,0,0,1;[LIne 0,0,BP 3* 41+,32;PRint 12,1,11 VA,3;][]"
  74. A$=A$+"BUtton 17,416,51,32,10,0,0,1;[LIne 0,0,BP 3* 41+,32;PRint 12,1,12 VA,3;][]"
  75. A$=A$+"BUtton 19,512,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 4,1,19 VA,3;][]"
  76. A$=A$+"BUtton 20,576,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,18 VA,3;][]"
  77. A$=A$+"LIne 128,11,41,160;PRint 140,12,13 VA,7;"
  78. A$=A$+"LIne 128,21,41,160;PRint 140,22,14 VA,7;"
  79. A$=A$+"LIne 128,31,41,160;PRint 140,32,15 VA,7;"
  80. A$=A$+"LIne 160,11,41,608;"
  81. A$=A$+"LIne 160,21,41,608;"
  82. A$=A$+"LIne 160,31,41,608;"
  83. A$=A$+"HSlider 21,164,13,438,6,0,1,16,1;[]"
  84. A$=A$+"HSlider 22,164,23,438,6,0,1,16,1;[]"
  85. A$=A$+"HSlider 23,164,33,438,6,0,1,16,1;[]"
  86. A$=A$+"BUtton 24,128,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,16 VA,3;][]"
  87. A$=A$+"BUtton 25,192,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,21 VA,3;][]"
  88. A$=A$+"BUtton 26,512,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 4,1,22 VA,3;][]"
  89. A$=A$+"BUtton 27,448,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,23 VA,3;][]"
  90. A$=A$+"BUtton 28,448,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,17 VA,3;][]"
  91. A$=A$+"LIne 608,11,41,640;"
  92. A$=A$+"LIne 608,21,41,640;"
  93. A$=A$+"LIne 608,31,41,640;"
  94. A$=A$+"LIne 576,41,41,640;"
  95. A$=A$+"LIne 256,41,41,448;"
  96. A$=A$+"LIne 0,83,31,640;"
  97. A$=A$+"EXit;"
  98. Dialog Open 1,A$,25,2000
  99. D=Dialog Run(1)
  100. VARI_MAKS=32
  101. PAIKKA=1
  102. PAIKKA_MAKS=1
  103. VARIT
  104. Ink 3
  105. A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  106. Text 576+32-Len(A$)*4,7,A$
  107. A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  108. Text 576+32-Len(A$)*4,48,A$
  109. Text 616,18,Str$(Rdialog(1,21))-" "
  110. Text 616,28,Str$(Rdialog(1,22))-" "
  111. Text 616,38,Str$(Rdialog(1,23))-" "
  112. Do 
  113.    If Mouse Screen=6
  114.       If Mouse Key=1
  115.          VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
  116.          VAIHDA_VARI
  117.          Cls 6,578,42 To 638,49
  118.          A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  119.          Text 576+32-Len(A$)*4,48,A$
  120.       End If 
  121.    End If 
  122.    D=Dialog(1)
  123.    If D>11 and D<>15
  124.       Screen 6
  125.       Pal To Bank 2
  126.       Screen 7
  127.    End If 
  128.    If D=1 or D=7
  129.       If BBANK>0
  130.          KYSELY["Quit","Update the","grabbed bank"]
  131.          If Param
  132.             Bank Swap 1,BBANK
  133.             Bsend BBANK
  134.          Else 
  135.             If BBANK<>5
  136.                Bank Swap 5,BBANK
  137.             End If 
  138.             Bsend BBANK
  139.          End If 
  140.       End If 
  141.       Exit 
  142.  
  143.    Else If D=3
  144.       F$=Fsel$("*.abk","","Select a bank to be","loaded")
  145.       If F$<>""
  146.          If Exist(F$)
  147.             Erase 1
  148.             Load F$,1
  149.             Screen 6
  150.             Pal From Bank 1,1
  151.             VARI=0
  152.             PAIKKA=1
  153.             PAIKKA_MAKS=Pal Count(1)
  154.             VARIT
  155.             A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  156.             Cls 6,578,1 To 638,9
  157.             Text 576+32-Len(A$)*4,7,A$
  158.          End If 
  159.       End If 
  160.    Else If D=4
  161.       F$=Fsel$("*.abk","","Type the name of the","new bank")
  162.       If F$<>""
  163.          Screen 6
  164.          Pal To Bank 1,PAIKKA
  165.          Screen 7
  166.          Save F$,1
  167.       End If 
  168.    Else If D=5
  169.       F$=Fsel$("*.abk","","Select a bank to be","merged")
  170.       If F$<>""
  171.          If Exist(F$)
  172.             Load F$,4
  173.             Erase 3
  174.             Reserve As Palette 3,Pal Count(1)+Pal Count(4)
  175.             Mem Copy Start(1),Start(1)+PAIKKA*64 To Start(3)
  176.             Mem Copy Start(4),Start(4)+Length(4) To Start(3)+PAIKKA*64
  177.             If PAIKKA<PAIKKA_MAKS
  178.                Mem Copy Start(1),Start(1)+Length(1) To Start(3)+(PAIKKA+Pal Count(4))*64
  179.             End If 
  180.             Erase 4
  181.             Bank Swap 1,3
  182.             Erase 3
  183.             VARIT
  184.             PAIKKA_MAKS=Pal Count(1)
  185.             A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  186.             Cls 6,578,1 To 638,9
  187.             Text 576+32-Len(A$)*4,7,A$
  188.          End If 
  189.       End If 
  190.    Else If D=6
  191.       KYSELY["Erase","Do you want to","delete all the palettes"]
  192.       If Param
  193.          Bank Shrink 1 To 64
  194.          PAIKKA=1
  195.          PAIKKA_MAKS=1
  196.          A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  197.          Cls 6,578,1 To 638,9
  198.          Text 576+32-Len(A$)*4,7,A$
  199.          VARIT
  200.          Pal To Bank 1,1
  201.       End If 
  202.    Else If D=8
  203.       If PAIKKA_MAKS>1
  204.          Dec PAIKKA_MAKS
  205.          If PAIKKA>PAIKKA_MAKS
  206.             PAIKKA=PAIKKA_MAKS
  207.          Else If PAIKKA<PAIKKA_MAKS
  208.             Mem Copy Start(1)+PAIKKA*64,Start(1)+Length(1) To Start(1)+PAIKKA*64-64
  209.          End If 
  210.          Bank Shrink 1 To Length(1)-64
  211.          Screen 6
  212.          Pal From Bank 1,PAIKKA
  213.          VARIT
  214.          A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  215.          Cls 6,578,1 To 638,9
  216.          Text 576+32-Len(A$)*4,7,A$
  217.       End If 
  218.  
  219.    Else If D=9
  220.       Inc PAIKKA_MAKS
  221.       A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  222.       Cls 6,578,1 To 638,9
  223.       Text 576+32-Len(A$)*4,7,A$
  224.       Erase 3
  225.       Reserve As Palette 3,Pal Count(1)+1
  226.       Mem Copy Start(1),Start(1)+PAIKKA*64 To Start(3)
  227.       Mem Copy Start(1)+PAIKKA*64,Start(1)+Length(1) To Start(3)+PAIKKA*64+64
  228.       Bank Swap 1,3
  229.       Erase 3
  230.       Screen 6
  231.       Pal To Bank 1,PAIKKA+1
  232.       Screen 7
  233.    Else If D=10
  234.       If PAIKKA<PAIKKA_MAKS
  235.          Inc PAIKKA
  236.          A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  237.          Cls 6,578,1 To 638,9
  238.          Text 576+32-Len(A$)*4,7,A$
  239.          Screen 6
  240.          Pal To Bank 1,PAIKKA-1
  241.          Pal From Bank 1,PAIKKA
  242.          VARIT
  243.       End If 
  244.    Else If D=11
  245.       If PAIKKA>1
  246.          Dec PAIKKA
  247.          A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  248.          Cls 6,578,1 To 638,9
  249.          Text 576+32-Len(A$)*4,7,A$
  250.          Screen 6
  251.          Pal To Bank 1,PAIKKA+1
  252.          Pal From Bank 1,PAIKKA
  253.          VARIT
  254.       End If 
  255.    Else If D=12
  256.       Dialog Freeze 
  257.       Repeat 
  258.       If Mouse Screen=6 : LIPPU=-1 : Else : LIPPU=0 : End If 
  259.       Until Mouse Key=1
  260.       If LIPPU
  261.          Screen 6
  262.          Screen 6
  263.          VARI2=VARI
  264.          VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
  265.          Pal Copy VARI2 To VARI
  266.          COR_COL[VARI]
  267.       End If 
  268.       Dialog Unfreeze 
  269.    Else If D=13
  270.       Dialog Freeze 
  271.       Repeat 
  272.       If Mouse Screen=6 : LIPPU=-1 : Else : LIPPU=0 : End If 
  273.       Until Mouse Key=1
  274.       If LIPPU
  275.          Screen 6
  276.          Screen 6
  277.          VARI2=VARI
  278.          VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
  279.          Pal Swap VARI2,VARI
  280.          COR_COL[VARI]
  281.       End If 
  282.       Dialog Unfreeze 
  283.  
  284.    Else If D=14
  285.       Dialog Freeze 
  286.       Repeat 
  287.       If Mouse Screen=6 : LIPPU=-1 : Else LIPPU=0 : End If 
  288.       Until Mouse Key=1
  289.       If LIPPU
  290.          Screen 6
  291.          VARI2=VARI
  292.          VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
  293.          Pal Spread VARI2 To VARI
  294.          COR_PAL[VARI2,VARI]
  295.       End If 
  296.       Dialog Unfreeze 
  297.    Else If D=15
  298.       Screen 6
  299.       Pal Swap Bank 2
  300.       Pal To Bank 1,PAIKKA
  301.       VARIT
  302.    Else If D=16
  303.       If VARI_MAKS<64
  304.          VARI_MAKS=VARI_MAKS*2
  305.          Cls 6,578,42 To 638,49
  306.          A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  307.          VARIT
  308.          Cls 6,578,42 To 638,49
  309.          A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  310.          Text 576+32-Len(A$)*4,48,A$
  311.  
  312.       End If 
  313.    Else If D=17
  314.       If VARI_MAKS>2
  315.          VARI_MAKS=VARI_MAKS/2
  316.          VARI=Min(VARI,VARI_MAKS-1)
  317.          VARIT
  318.          Cls 6,578,42 To 638,49
  319.          A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  320.          Text 576+32-Len(A$)*4,48,A$
  321.       End If 
  322.    Else If D=18
  323.       Dialog Freeze 
  324.       Repeat 
  325.       If Mouse Screen=6 : LIPPU=-1 : Else LIPPU=0 : End If 
  326.       Until Mouse Key=1
  327.       If LIPPU
  328.          Screen 6
  329.          VARI2=VARI
  330.          VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
  331.          For I=Min(VARI2,VARI) To Max(VARI2,VARI)
  332.             Del Bank Colour 1,PAIKKA,I
  333.          Next 
  334.       End If 
  335.       VARIT
  336.       Dialog Unfreeze 
  337.    Else If D=19
  338.       F$=Fsel$("**","","Select an IFF picture","to be loaded")
  339.       If F$<>""
  340.          If Exist(F$)
  341.             Trap Load Iff F$,5
  342.             If Errtrap
  343.                Bell 
  344.             Else 
  345.                Screen Hide 5
  346.                Screen 6
  347.                Get Palette 5
  348.                Pal To Bank 1,PAIKKA
  349.                VARIT
  350.                Screen Close 5
  351.             End If 
  352.             Screen 7
  353.          End If 
  354.       End If 
  355.    Else If D=20
  356.       NUMERO["Grab a bank","Bank number"]
  357.       A=Param
  358.       If A>0 and Abs(Prg Under)=1
  359.          If Blength(A)>0
  360.             If Str Peek$(Bstart(A)-8,8)="Palettes"
  361.                Erase 5
  362.                If A<5
  363.                   Bank Swap A,5
  364.                End If 
  365.                Bgrab A
  366.                If A<>5
  367.                   Bank Swap A,5
  368.                End If 
  369.                BBANK=A
  370.                Erase 1
  371.                Reserve As Palette 1,Pal Count(5)
  372.                Mem Copy Start(5),Start(5)+Length(5) To Start(1)
  373.                PAIKKA=1
  374.                PAIKKA_MAKS=Pal Count(1)
  375.                A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  376.                Cls 6,578,1 To 638,9
  377.                Text 576+32-Len(A$)*4,7,A$
  378.                Screen 6
  379.                Pal From Bank 1,1
  380.                VARIT
  381.             Else 
  382.                Bell 
  383.             End If 
  384.          Else 
  385.             Bell 
  386.          End If 
  387.       End If 
  388.  
  389.    Else If D=21
  390.       Screen 6
  391.       If Pal Red(VARI)<>Rdialog(1,21)
  392.          Set Red VARI,Rdialog(1,21)
  393.       End If 
  394.       Screen 7
  395.       Cls 6,610,12 To 638,19
  396.       Text 616,18,Str$(Rdialog(1,21))-" "
  397.       COR_COL[VARI]
  398.    Else If D=22
  399.       Screen 6
  400.       If Pal Green(VARI)<>Rdialog(1,22)
  401.          Set Green VARI,Rdialog(1,22)
  402.       End If 
  403.       Screen 7
  404.       Cls 6,610,22 To 638,29
  405.       Text 616,28,Str$(Rdialog(1,22))-" "
  406.       COR_COL[VARI]
  407.    Else If D=23
  408.       Screen 6
  409.       If Pal Blue(VARI)<>Rdialog(1,23)
  410.          Set Blue VARI,Rdialog(1,23)
  411.       End If 
  412.       Screen 7
  413.       Cls 6,610,32 To 638,39
  414.       Text 616,38,Str$(Rdialog(1,23))-" "
  415.       COR_COL[VARI]
  416.    Else If D=24
  417.       NUMERO["Swap palette","Palette number"]
  418.       A=Param
  419.       If A>0 and A<=PAIKKA_MAKS
  420.          If A<>PAIKKA
  421.             Screen 6
  422.             Pal Swap Bank 1,A
  423.             Pal To Bank 1,PAIKKA
  424.             VARIT
  425.          End If 
  426.       End If 
  427.    Else If D=25
  428.       NUMERO["Copy palette","Palette number"]
  429.       A=Param
  430.       If A>0 and A<=PAIKKA_MAKS
  431.          If A<>PAIKKA
  432.             Screen 6
  433.             Pal To Bank 1,PAIKKA
  434.             Pal To Bank 1,A
  435.             PAIKKA=A
  436.             VARIT
  437.             A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
  438.             Cls 6,578,1 To 638,9
  439.             Text 576+32-Len(A$)*4,7,A$
  440.          End If 
  441.       End If 
  442.    Else If D=26
  443.       A$="Palette "
  444.       Screen 6
  445.       For I=0 To Min(VARI_MAKS-1,31)
  446.          A$=A$+Hex$( Colour(I))+","
  447.       Next 
  448.       A$=Left$(A$,Len(A$)-1)
  449.       Screen 7
  450.       Call Editor 29
  451.       Call Editor 71,,A$
  452.    Else If D=27
  453.       NUMERO["Grab screen palette","Screen number"]
  454.       A=Param
  455.       If A>-1 and A<6
  456.          Screen 6
  457.          Trap Get Palette A
  458.          If Errtrap
  459.             Bell 
  460.          Else 
  461.             Pal To Bank 1,PAIKKA
  462.             Screen A
  463.             VARI_MAKS=Screen Colour
  464.          End If 
  465.          VARIT
  466.       End If 
  467.    Else If D=28
  468.       Call Editor 89
  469.    End If 
  470.  
  471.    If D<21 or D>23
  472.       Dialog Update 1,D,0
  473.    End If 
  474.    If Prg Under=1
  475.       A=Asc(Inkey$)
  476.       B=Key Shift
  477.       SHIFT=0
  478.       CTRL=0
  479.       ALT=0
  480.       If Btst(0,B) or Btst(1,B) : SHIFT=-1 : End If 
  481.       If Btst(3,B) : CTRL=-1 : End If 
  482.       If Btst(4,B) or Btst(5,B) : ALT=-1 : End If 
  483.       If A=28 or A=29
  484.          If SHIFT
  485.             Call Editor 7-A+29
  486.          Else If CTRL
  487.             Call Editor 11-A+29
  488.          Else 
  489.             Call Editor 3-A+29
  490.          End If 
  491.       Else If A=30 or A=31
  492.          If CTRL and SHIFT
  493.             Call Editor 17+A-30
  494.          Else If CTRL
  495.             Call Editor 9+A-30
  496.          Else If SHIFT
  497.             Call Editor 5+A-30
  498.          Else If ALT
  499.             Call Editor 31+A-30
  500.          Else 
  501.             Call Editor 1+A-30
  502.          End If 
  503.       End If 
  504.    End If 
  505. Loop 
  506. Procedure VARIT
  507.    Screen 6
  508.    For I=0 To Min(31,VARI_MAKS-1)
  509.       Ink I,0
  510.       If Bank Colour(1,PAIKKA,I)=-1
  511.          Set Pattern 2
  512.       Else 
  513.          Set Pattern 0
  514.       End If 
  515.       If VARI_MAKS=64
  516.          Bar I*10,1 To I*10+10,9
  517.          Ink I+32
  518.          Bar I*10,10 To I*10+10,18
  519.       Else 
  520.          Bar I*(320/VARI_MAKS),1 To I*(320/VARI_MAKS)+(320/VARI_MAKS),18
  521.       End If 
  522.    Next 
  523.    Screen 7
  524.    VAIHDA_VARI
  525. End Proc
  526. Procedure VAIHDA_VARI
  527.    Screen 6
  528.    Ink 0
  529.    Draw 0,0 To 320,0
  530.    Draw 0,19 To 320,19
  531.    Ink 1
  532.    Draw VARI*(320/Min(VARI_MAKS,32)),0 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,0
  533.    Draw VARI*(320/Min(VARI_MAKS,32)),19 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,19
  534.    Dialog Update 1,21,Pal Red(VARI)
  535.    Dialog Update 1,22,Pal Green(VARI)
  536.    Dialog Update 1,23,Pal Blue(VARI)
  537.    Screen 7
  538.    Cls 6,578,42 To 638,49
  539.    A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
  540.    Text 576+32-Len(A$)*4,48,A$
  541.    Cls 6,610,12 To 638,19
  542.    Text 616,18,Str$(Rdialog(1,21))-" "
  543.    Cls 6,610,22 To 638,29
  544.    Text 616,28,Str$(Rdialog(1,22))-" "
  545.    Cls 6,610,32 To 638,39
  546.    Text 616,38,Str$(Rdialog(1,23))-" "
  547. End Proc
  548. Procedure COR_COL[VARI2]
  549.    Screen 6
  550.    Set Pattern 0
  551.    Ink VARI2
  552.    Set Bank Colour 1,PAIKKA,VARI2, Colour(VARI2)
  553.    If VARI_MAKS=64
  554.       Bar VARI2*10,1 To VARI2*10+10,9
  555.       Ink VARI2+32
  556.       Bar VARI2*10,10 To VARI2*10+10,18
  557.    Else 
  558.       Bar VARI2*(320/VARI_MAKS),1 To VARI2*(320/VARI_MAKS)+(320/VARI_MAKS),18
  559.    End If 
  560.    Ink 0
  561.    Draw 0,0 To 320,0
  562.    Draw 0,19 To 320,19
  563.    Ink 1
  564.    Draw VARI*(320/Min(VARI_MAKS,32)),0 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,0
  565.    Draw VARI*(320/Min(VARI_MAKS,32)),19 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,19
  566. End Proc
  567. Procedure COR_PAL[VARI2,VARI3]
  568.    Screen 6
  569.    Set Pattern 0
  570.    For I=Min(VARI2,VARI3) To Max(VARI2,VARI3)
  571.       Ink I
  572.       Set Bank Colour 1,PAIKKA,I, Colour(I)
  573.       If VARI_MAKS=64
  574.          Bar I*10,1 To I*10+10,9
  575.          Ink I+32
  576.          Bar I*10,10 To I*10+10,18
  577.       Else 
  578.          Bar I*(320/VARI_MAKS),1 To I*(320/VARI_MAKS)+(320/VARI_MAKS),18
  579.       End If 
  580.    Next 
  581.    Screen 7
  582. End Proc
  583. Procedure NUMERO[A$,B$]
  584.    Get Cblock 1,208,0,224,61
  585.    Dialog Freeze 1
  586.    A$="SV 0,'"+A$+"';"
  587.    A$=A$+"SV 1,'"+B$+"';"
  588.    A$=A$+"SV 2,'Cancel';"
  589.    A$=A$+"SV 3,'Ok';"
  590.    A$=A$+"BAse 208,0;"
  591.    A$=A$+"SIze 224,61;"
  592.    A$=A$+"BOx 0,0,1,224,61;"
  593.    A$=A$+"POut 0 VA CX,4,0 VA,0,7;"
  594.    A$=A$+"LIne 8,14,31,216;"
  595.    A$=A$+"POut 20,25,1 VA,0,3;"
  596.    A$=A$+"LIne 136,21,17,204;"
  597.    A$=A$+"DIgit 1,148,25,6,0,0,2,3;"
  598.    A$=A$+"BUtton 2,48,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 8,4,2 VA,0,4;][]"
  599.    A$=A$+"BUtton 3,112,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 24,4,3 VA,0,4;][]"
  600.    A$=A$+"EXit;"
  601.    Dialog Open 2,A$
  602.    D=Dialog Run(2)
  603.    Do 
  604.       If Rdialog(2,2)=1
  605.          A=-1
  606.          Exit 
  607.       Else If Rdialog(2,3)=1
  608.          If Rdialog(2,1)<0
  609.             A=-1
  610.          Else 
  611.             A=Rdialog(2,1)
  612.          End If 
  613.          Exit 
  614.       End If 
  615.    Loop 
  616.    Dialog Close 2
  617.    Put Cblock 1
  618.    Del Cblock 1
  619.    Dialog Unfreeze 1
  620.    Ink 3,6
  621. End Proc[A]
  622. Procedure KYSELY[A$,B$,C$]
  623.    Get Cblock 1,208,0,224,61
  624.    Dialog Freeze 1
  625.    A$="SV 0,'"+A$+"';"
  626.    A$=A$+"SV 1,'"+B$+"';"
  627.    A$=A$+"SV 2,'Cancel';"
  628.    A$=A$+"SV 3,'Ok';"
  629.    A$=A$+"SV 4,'"+C$+"';"
  630.    A$=A$+"BAse 208,0;"
  631.    A$=A$+"SIze 224,61;"
  632.    A$=A$+"BOx 0,0,1,224,61;"
  633.    A$=A$+"POut 0 VA CX,4,0 VA,0,7;"
  634.    A$=A$+"LIne 8,14,31,216;"
  635.    A$=A$+"POut 1 VA CX,21,1 VA,0,3;"
  636.    A$=A$+"POut 4 VA CX,31,4 VA,0,3;"
  637.    A$=A$+"BUtton 1,48,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 8,4,2 VA,0,4;][]"
  638.    A$=A$+"BUtton 2,112,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 24,4,3 VA,0,4;][]"
  639.    A$=A$+"EXit;"
  640.    Dialog Open 2,A$
  641.    D=Dialog Run(2)
  642.    Do 
  643.       If Rdialog(2,1)=1
  644.          A=0
  645.          Exit 
  646.       Else If Rdialog(2,2)=1
  647.          A=-1
  648.          Exit 
  649.       End If 
  650.    Loop 
  651.    Dialog Close 2
  652.    Put Cblock 1
  653.    Del Cblock 1
  654.    Dialog Unfreeze 1
  655.    Ink 3,6
  656. End Proc[A]
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.