home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sauce 'n' Code 1
/
sauce-n-code-01.adf
/
ASCII_Source
/
PaletteED.asc
< prev
next >
Wrap
Text File
|
1995-05-07
|
18KB
|
663 lines
'
' Palette accessory by Janne Kalliola
'
Set Accessory
Global VARI,VARI_MAKS
Global PAIKKA,PAIKKA_MAKS
Resource Screen Open 7,640,87,0
Cls 0
Screen Open 6,320,20,64,Lowres
Curs Off
Flash Off
Cls 0
Screen Display 6,,Y Hard(7,0)+62,,
If Prg Under=1
For I=0 To 5
Trap Screen Hide I
Next
End If
A$="L: Let RA=Y; Jump L"
Channel 0 To Screen Display 7
Channel 1 To Screen Display 6
Amal 0,A$
A$="L: Let Y=RA+62; Jump L"
Amal 1,A$
Amal On
Erase 1
Erase 2
Reserve As Palette 1,1
Reserve As Palette 2,1
Pal To Bank 2
Screen 7
A$="SV 0,'Load';"
A$=A$+"SV 1,'Save';"
A$=A$+"SV 2,'Merge';"
A$=A$+"SV 3,'Erase';"
A$=A$+"SV 4,'Quit';"
A$=A$+"SV 5,'Delete';"
A$=A$+"SV 6,'Insert';"
A$=A$+"SV 7,'Copy';"
A$=A$+"SV 8,'Swap';"
A$=A$+"SV 9,'Spread';"
A$=A$+"SV 10,'Undo';"
A$=A$+"SV 11,'+';"
A$=A$+"SV 12,'-';"
A$=A$+"SV 13,'R';"
A$=A$+"SV 14,'G';"
A$=A$+"SV 15,'B';"
A$=A$+"SV 16,'P.Swap';"
A$=A$+"SV 17,'Unfold';"
A$=A$+"SV 18,'Grab';"
A$=A$+"SV 19,'Get IFF';"
A$=A$+"SV 20,'Palette Editor v1.0';"
A$=A$+"SV 21,'P.Copy';"
A$=A$+"SV 22,'Command';"
A$=A$+"SV 23,'Screen';"
A$=A$+"BUtton 1,0,0,24,10,0,0,1;[UNpack 0,0,22 BP+;][]"
A$=A$+"BUtton 2,24,0,552,10,0,0,1;[LIne 0,0,41,552;PRint 8,1,20 VA,7;][ScreenMove;]"
A$=A$+"LIne 576,0,41,640;"
A$=A$+"BUtton 3,0,11,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,0 VA,3;][]"
A$=A$+"BUtton 4,0,21,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,1 VA,3;][]"
A$=A$+"BUtton 5,0,31,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 12,1,2 VA,3;][]"
A$=A$+"BUtton 6,0,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 12,1,3 VA,3;][]"
A$=A$+"BUtton 7,0,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,4 VA,3;][]"
A$=A$+"BUtton 8,64,11,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,5 VA,3;][]"
A$=A$+"BUtton 9,64,21,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,6 VA,3;][]"
A$=A$+"BUtton 10,64,31,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 28,1,11 VA,3;][]"
A$=A$+"BUtton 11,64,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 28,1,12 VA,3;][]"
A$=A$+"BUtton 12,64,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,7 VA,3;][]"
A$=A$+"BUtton 13,128,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,8 VA,3;][]"
A$=A$+"BUtton 14,192,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,9 VA,3;][]"
A$=A$+"BUtton 18,256,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,5 VA,3;][]"
A$=A$+"BUtton 15,320,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,10 VA,3;][]"
A$=A$+"BUtton 16,384,51,32,10,0,0,1;[LIne 0,0,BP 3* 41+,32;PRint 12,1,11 VA,3;][]"
A$=A$+"BUtton 17,416,51,32,10,0,0,1;[LIne 0,0,BP 3* 41+,32;PRint 12,1,12 VA,3;][]"
A$=A$+"BUtton 19,512,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 4,1,19 VA,3;][]"
A$=A$+"BUtton 20,576,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 16,1,18 VA,3;][]"
A$=A$+"LIne 128,11,41,160;PRint 140,12,13 VA,7;"
A$=A$+"LIne 128,21,41,160;PRint 140,22,14 VA,7;"
A$=A$+"LIne 128,31,41,160;PRint 140,32,15 VA,7;"
A$=A$+"LIne 160,11,41,608;"
A$=A$+"LIne 160,21,41,608;"
A$=A$+"LIne 160,31,41,608;"
A$=A$+"HSlider 21,164,13,438,6,0,1,16,1;[]"
A$=A$+"HSlider 22,164,23,438,6,0,1,16,1;[]"
A$=A$+"HSlider 23,164,33,438,6,0,1,16,1;[]"
A$=A$+"BUtton 24,128,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,16 VA,3;][]"
A$=A$+"BUtton 25,192,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,21 VA,3;][]"
A$=A$+"BUtton 26,512,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 4,1,22 VA,3;][]"
A$=A$+"BUtton 27,448,51,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,23 VA,3;][]"
A$=A$+"BUtton 28,448,41,64,10,0,0,1;[LIne 0,0,BP 3* 41+,64;PRint 8,1,17 VA,3;][]"
A$=A$+"LIne 608,11,41,640;"
A$=A$+"LIne 608,21,41,640;"
A$=A$+"LIne 608,31,41,640;"
A$=A$+"LIne 576,41,41,640;"
A$=A$+"LIne 256,41,41,448;"
A$=A$+"LIne 0,83,31,640;"
A$=A$+"EXit;"
Dialog Open 1,A$,25,2000
D=Dialog Run(1)
VARI_MAKS=32
PAIKKA=1
PAIKKA_MAKS=1
VARIT
Ink 3
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Text 576+32-Len(A$)*4,7,A$
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
Text 576+32-Len(A$)*4,48,A$
Text 616,18,Str$(Rdialog(1,21))-" "
Text 616,28,Str$(Rdialog(1,22))-" "
Text 616,38,Str$(Rdialog(1,23))-" "
Do
If Mouse Screen=6
If Mouse Key=1
VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
VAIHDA_VARI
Cls 6,578,42 To 638,49
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
Text 576+32-Len(A$)*4,48,A$
End If
End If
D=Dialog(1)
If D>11 and D<>15
Screen 6
Pal To Bank 2
Screen 7
End If
If D=1 or D=7
If BBANK>0
KYSELY["Quit","Update the","grabbed bank"]
If Param
Bank Swap 1,BBANK
Bsend BBANK
Else
If BBANK<>5
Bank Swap 5,BBANK
End If
Bsend BBANK
End If
End If
Exit
Else If D=3
F$=Fsel$("*.abk","","Select a bank to be","loaded")
If F$<>""
If Exist(F$)
Erase 1
Load F$,1
Screen 6
Pal From Bank 1,1
VARI=0
PAIKKA=1
PAIKKA_MAKS=Pal Count(1)
VARIT
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
End If
End If
Else If D=4
F$=Fsel$("*.abk","","Type the name of the","new bank")
If F$<>""
Screen 6
Pal To Bank 1,PAIKKA
Screen 7
Save F$,1
End If
Else If D=5
F$=Fsel$("*.abk","","Select a bank to be","merged")
If F$<>""
If Exist(F$)
Load F$,4
Erase 3
Reserve As Palette 3,Pal Count(1)+Pal Count(4)
Mem Copy Start(1),Start(1)+PAIKKA*64 To Start(3)
Mem Copy Start(4),Start(4)+Length(4) To Start(3)+PAIKKA*64
If PAIKKA<PAIKKA_MAKS
Mem Copy Start(1),Start(1)+Length(1) To Start(3)+(PAIKKA+Pal Count(4))*64
End If
Erase 4
Bank Swap 1,3
Erase 3
VARIT
PAIKKA_MAKS=Pal Count(1)
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
End If
End If
Else If D=6
KYSELY["Erase","Do you want to","delete all the palettes"]
If Param
Bank Shrink 1 To 64
PAIKKA=1
PAIKKA_MAKS=1
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
VARIT
Pal To Bank 1,1
End If
Else If D=8
If PAIKKA_MAKS>1
Dec PAIKKA_MAKS
If PAIKKA>PAIKKA_MAKS
PAIKKA=PAIKKA_MAKS
Else If PAIKKA<PAIKKA_MAKS
Mem Copy Start(1)+PAIKKA*64,Start(1)+Length(1) To Start(1)+PAIKKA*64-64
End If
Bank Shrink 1 To Length(1)-64
Screen 6
Pal From Bank 1,PAIKKA
VARIT
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
End If
Else If D=9
Inc PAIKKA_MAKS
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
Erase 3
Reserve As Palette 3,Pal Count(1)+1
Mem Copy Start(1),Start(1)+PAIKKA*64 To Start(3)
Mem Copy Start(1)+PAIKKA*64,Start(1)+Length(1) To Start(3)+PAIKKA*64+64
Bank Swap 1,3
Erase 3
Screen 6
Pal To Bank 1,PAIKKA+1
Screen 7
Else If D=10
If PAIKKA<PAIKKA_MAKS
Inc PAIKKA
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
Screen 6
Pal To Bank 1,PAIKKA-1
Pal From Bank 1,PAIKKA
VARIT
End If
Else If D=11
If PAIKKA>1
Dec PAIKKA
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
Screen 6
Pal To Bank 1,PAIKKA+1
Pal From Bank 1,PAIKKA
VARIT
End If
Else If D=12
Dialog Freeze
Repeat
If Mouse Screen=6 : LIPPU=-1 : Else : LIPPU=0 : End If
Until Mouse Key=1
If LIPPU
Screen 6
Screen 6
VARI2=VARI
VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
Pal Copy VARI2 To VARI
COR_COL[VARI]
End If
Dialog Unfreeze
Else If D=13
Dialog Freeze
Repeat
If Mouse Screen=6 : LIPPU=-1 : Else : LIPPU=0 : End If
Until Mouse Key=1
If LIPPU
Screen 6
Screen 6
VARI2=VARI
VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
Pal Swap VARI2,VARI
COR_COL[VARI]
End If
Dialog Unfreeze
Else If D=14
Dialog Freeze
Repeat
If Mouse Screen=6 : LIPPU=-1 : Else LIPPU=0 : End If
Until Mouse Key=1
If LIPPU
Screen 6
VARI2=VARI
VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
Pal Spread VARI2 To VARI
COR_PAL[VARI2,VARI]
End If
Dialog Unfreeze
Else If D=15
Screen 6
Pal Swap Bank 2
Pal To Bank 1,PAIKKA
VARIT
Else If D=16
If VARI_MAKS<64
VARI_MAKS=VARI_MAKS*2
Cls 6,578,42 To 638,49
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
VARIT
Cls 6,578,42 To 638,49
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
Text 576+32-Len(A$)*4,48,A$
End If
Else If D=17
If VARI_MAKS>2
VARI_MAKS=VARI_MAKS/2
VARI=Min(VARI,VARI_MAKS-1)
VARIT
Cls 6,578,42 To 638,49
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
Text 576+32-Len(A$)*4,48,A$
End If
Else If D=18
Dialog Freeze
Repeat
If Mouse Screen=6 : LIPPU=-1 : Else LIPPU=0 : End If
Until Mouse Key=1
If LIPPU
Screen 6
VARI2=VARI
VARI=X Screen(6,X Mouse)/(320/Min(32,VARI_MAKS))
For I=Min(VARI2,VARI) To Max(VARI2,VARI)
Del Bank Colour 1,PAIKKA,I
Next
End If
VARIT
Dialog Unfreeze
Else If D=19
F$=Fsel$("**","","Select an IFF picture","to be loaded")
If F$<>""
If Exist(F$)
Trap Load Iff F$,5
If Errtrap
Bell
Else
Screen Hide 5
Screen 6
Get Palette 5
Pal To Bank 1,PAIKKA
VARIT
Screen Close 5
End If
Screen 7
End If
End If
Else If D=20
NUMERO["Grab a bank","Bank number"]
A=Param
If A>0 and Abs(Prg Under)=1
If Blength(A)>0
If Str Peek$(Bstart(A)-8,8)="Palettes"
Erase 5
If A<5
Bank Swap A,5
End If
Bgrab A
If A<>5
Bank Swap A,5
End If
BBANK=A
Erase 1
Reserve As Palette 1,Pal Count(5)
Mem Copy Start(5),Start(5)+Length(5) To Start(1)
PAIKKA=1
PAIKKA_MAKS=Pal Count(1)
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
Screen 6
Pal From Bank 1,1
VARIT
Else
Bell
End If
Else
Bell
End If
End If
Else If D=21
Screen 6
If Pal Red(VARI)<>Rdialog(1,21)
Set Red VARI,Rdialog(1,21)
End If
Screen 7
Cls 6,610,12 To 638,19
Text 616,18,Str$(Rdialog(1,21))-" "
COR_COL[VARI]
Else If D=22
Screen 6
If Pal Green(VARI)<>Rdialog(1,22)
Set Green VARI,Rdialog(1,22)
End If
Screen 7
Cls 6,610,22 To 638,29
Text 616,28,Str$(Rdialog(1,22))-" "
COR_COL[VARI]
Else If D=23
Screen 6
If Pal Blue(VARI)<>Rdialog(1,23)
Set Blue VARI,Rdialog(1,23)
End If
Screen 7
Cls 6,610,32 To 638,39
Text 616,38,Str$(Rdialog(1,23))-" "
COR_COL[VARI]
Else If D=24
NUMERO["Swap palette","Palette number"]
A=Param
If A>0 and A<=PAIKKA_MAKS
If A<>PAIKKA
Screen 6
Pal Swap Bank 1,A
Pal To Bank 1,PAIKKA
VARIT
End If
End If
Else If D=25
NUMERO["Copy palette","Palette number"]
A=Param
If A>0 and A<=PAIKKA_MAKS
If A<>PAIKKA
Screen 6
Pal To Bank 1,PAIKKA
Pal To Bank 1,A
PAIKKA=A
VARIT
A$=Str$(PAIKKA)-" "+"/"+Str$(PAIKKA_MAKS)-" "
Cls 6,578,1 To 638,9
Text 576+32-Len(A$)*4,7,A$
End If
End If
Else If D=26
A$="Palette "
Screen 6
For I=0 To Min(VARI_MAKS-1,31)
A$=A$+Hex$( Colour(I))+","
Next
A$=Left$(A$,Len(A$)-1)
Screen 7
Call Editor 29
Call Editor 71,,A$
Else If D=27
NUMERO["Grab screen palette","Screen number"]
A=Param
If A>-1 and A<6
Screen 6
Trap Get Palette A
If Errtrap
Bell
Else
Pal To Bank 1,PAIKKA
Screen A
VARI_MAKS=Screen Colour
End If
VARIT
End If
Else If D=28
Call Editor 89
End If
If D<21 or D>23
Dialog Update 1,D,0
End If
If Prg Under=1
A=Asc(Inkey$)
B=Key Shift
SHIFT=0
CTRL=0
ALT=0
If Btst(0,B) or Btst(1,B) : SHIFT=-1 : End If
If Btst(3,B) : CTRL=-1 : End If
If Btst(4,B) or Btst(5,B) : ALT=-1 : End If
If A=28 or A=29
If SHIFT
Call Editor 7-A+29
Else If CTRL
Call Editor 11-A+29
Else
Call Editor 3-A+29
End If
Else If A=30 or A=31
If CTRL and SHIFT
Call Editor 17+A-30
Else If CTRL
Call Editor 9+A-30
Else If SHIFT
Call Editor 5+A-30
Else If ALT
Call Editor 31+A-30
Else
Call Editor 1+A-30
End If
End If
End If
Loop
Procedure VARIT
Screen 6
For I=0 To Min(31,VARI_MAKS-1)
Ink I,0
If Bank Colour(1,PAIKKA,I)=-1
Set Pattern 2
Else
Set Pattern 0
End If
If VARI_MAKS=64
Bar I*10,1 To I*10+10,9
Ink I+32
Bar I*10,10 To I*10+10,18
Else
Bar I*(320/VARI_MAKS),1 To I*(320/VARI_MAKS)+(320/VARI_MAKS),18
End If
Next
Screen 7
VAIHDA_VARI
End Proc
Procedure VAIHDA_VARI
Screen 6
Ink 0
Draw 0,0 To 320,0
Draw 0,19 To 320,19
Ink 1
Draw VARI*(320/Min(VARI_MAKS,32)),0 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,0
Draw VARI*(320/Min(VARI_MAKS,32)),19 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,19
Dialog Update 1,21,Pal Red(VARI)
Dialog Update 1,22,Pal Green(VARI)
Dialog Update 1,23,Pal Blue(VARI)
Screen 7
Cls 6,578,42 To 638,49
A$=Str$(VARI)-" "+"/"+Str$(VARI_MAKS)-" "
Text 576+32-Len(A$)*4,48,A$
Cls 6,610,12 To 638,19
Text 616,18,Str$(Rdialog(1,21))-" "
Cls 6,610,22 To 638,29
Text 616,28,Str$(Rdialog(1,22))-" "
Cls 6,610,32 To 638,39
Text 616,38,Str$(Rdialog(1,23))-" "
End Proc
Procedure COR_COL[VARI2]
Screen 6
Set Pattern 0
Ink VARI2
Set Bank Colour 1,PAIKKA,VARI2, Colour(VARI2)
If VARI_MAKS=64
Bar VARI2*10,1 To VARI2*10+10,9
Ink VARI2+32
Bar VARI2*10,10 To VARI2*10+10,18
Else
Bar VARI2*(320/VARI_MAKS),1 To VARI2*(320/VARI_MAKS)+(320/VARI_MAKS),18
End If
Ink 0
Draw 0,0 To 320,0
Draw 0,19 To 320,19
Ink 1
Draw VARI*(320/Min(VARI_MAKS,32)),0 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,0
Draw VARI*(320/Min(VARI_MAKS,32)),19 To(VARI+1)*(320/Min(VARI_MAKS,32))-1,19
End Proc
Procedure COR_PAL[VARI2,VARI3]
Screen 6
Set Pattern 0
For I=Min(VARI2,VARI3) To Max(VARI2,VARI3)
Ink I
Set Bank Colour 1,PAIKKA,I, Colour(I)
If VARI_MAKS=64
Bar I*10,1 To I*10+10,9
Ink I+32
Bar I*10,10 To I*10+10,18
Else
Bar I*(320/VARI_MAKS),1 To I*(320/VARI_MAKS)+(320/VARI_MAKS),18
End If
Next
Screen 7
End Proc
Procedure NUMERO[A$,B$]
Get Cblock 1,208,0,224,61
Dialog Freeze 1
A$="SV 0,'"+A$+"';"
A$=A$+"SV 1,'"+B$+"';"
A$=A$+"SV 2,'Cancel';"
A$=A$+"SV 3,'Ok';"
A$=A$+"BAse 208,0;"
A$=A$+"SIze 224,61;"
A$=A$+"BOx 0,0,1,224,61;"
A$=A$+"POut 0 VA CX,4,0 VA,0,7;"
A$=A$+"LIne 8,14,31,216;"
A$=A$+"POut 20,25,1 VA,0,3;"
A$=A$+"LIne 136,21,17,204;"
A$=A$+"DIgit 1,148,25,6,0,0,2,3;"
A$=A$+"BUtton 2,48,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 8,4,2 VA,0,4;][]"
A$=A$+"BUtton 3,112,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 24,4,3 VA,0,4;][]"
A$=A$+"EXit;"
Dialog Open 2,A$
D=Dialog Run(2)
Do
If Rdialog(2,2)=1
A=-1
Exit
Else If Rdialog(2,3)=1
If Rdialog(2,1)<0
A=-1
Else
A=Rdialog(2,1)
End If
Exit
End If
Loop
Dialog Close 2
Put Cblock 1
Del Cblock 1
Dialog Unfreeze 1
Ink 3,6
End Proc[A]
Procedure KYSELY[A$,B$,C$]
Get Cblock 1,208,0,224,61
Dialog Freeze 1
A$="SV 0,'"+A$+"';"
A$=A$+"SV 1,'"+B$+"';"
A$=A$+"SV 2,'Cancel';"
A$=A$+"SV 3,'Ok';"
A$=A$+"SV 4,'"+C$+"';"
A$=A$+"BAse 208,0;"
A$=A$+"SIze 224,61;"
A$=A$+"BOx 0,0,1,224,61;"
A$=A$+"POut 0 VA CX,4,0 VA,0,7;"
A$=A$+"LIne 8,14,31,216;"
A$=A$+"POut 1 VA CX,21,1 VA,0,3;"
A$=A$+"POut 4 VA CX,31,4 VA,0,3;"
A$=A$+"BUtton 1,48,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 8,4,2 VA,0,4;][]"
A$=A$+"BUtton 2,112,41,64,16,0,0,1;[UNpack 0,0,13 BP+;POut 24,4,3 VA,0,4;][]"
A$=A$+"EXit;"
Dialog Open 2,A$
D=Dialog Run(2)
Do
If Rdialog(2,1)=1
A=0
Exit
Else If Rdialog(2,2)=1
A=-1
Exit
End If
Loop
Dialog Close 2
Put Cblock 1
Del Cblock 1
Dialog Unfreeze 1
Ink 3,6
End Proc[A]