TYPE KeyboardFlags rShift AS INTEGER: lShift AS INTEGER rAlt AS INTEGER: lAlt AS INTEGER rCtrl AS INTEGER: lCtrl AS INTEGER Shift AS INTEGER Alt AS INTEGER Ctrl AS INTEGER ScrollOn AS INTEGER: ScrollPressed AS INTEGER CapsOn AS INTEGER: CapsPressed AS INTEGER NumOn AS INTEGER: NumPressed AS INTEGER InsOn AS INTEGER: InsPressed AS INTEGER Pause AS INTEGER SysReq AS INTEGER END TYPE TYPE Rec Ukon AS STRING * 1 x AS INTEGER y AS INTEGER lx AS INTEGER ly AS INTEGER c AS INTEGER END TYPE TYPE Registry AX AS INTEGER BX AS INTEGER CX AS INTEGER DX AS INTEGER BP AS INTEGER SI AS INTEGER DI AS INTEGER Flags AS INTEGER DS AS INTEGER ES AS INTEGER END TYPE 'MY_FONT.QLB definice obsazenych funkci DECLARE SUB InitFont (File$) DECLARE SUB PixWrite (c$, PosX!, PosY!, Fore!, Back!, RozX!, RozY!) COMMON SHARED FontStr AS STRING * 4080 DECLARE FUNCTION DlgBox! (Radek1$, Radek2$, Butt1$, Butt2$) DECLARE FUNCTION Klavesnicka (ff$, Pom1, Pom2) DECLARE FUNCTION Language! () DECLARE FUNCTION Menu (xmouse%, ymouse%, QUICK6!) DECLARE FUNCTION Confirm! (x1!, y1!, text$, Butt1Text$, Butt2Text$, Butt1Key$, Butt2Key$, QUICKX!, QUICKX$) DECLARE FUNCTION GetKey! (a!) DECLARE FUNCTION PutLine (xmouse%, ymouse%, BarvaPopredi) DECLARE FUNCTION GetColor (Textik$, Barva, Kurzor) DECLARE FUNCTION GetCislo! () DECLARE FUNCTION Truncate (File$, File2$, Ok, Txt() AS STRING) DECLARE SUB SaveBMP (File$) DECLARE SUB UkazBarvy (x!, y!, c!, B!, a$, B$) DECLARE SUB GetKeybFlags () DECLARE SUB CreateFontFile () DECLARE SUB VystinujOkno (x1!, y1!, x2!, y2!) DECLARE SUB Tlacitko (x%, y%, ex%, ey%, OnOff!) DECLARE SUB MsgBox (Radek1$, Radek2$, Butt$) DECLARE SUB DoBufferu (key$) DECLARE SUB WaitForSomething () DECLARE SUB CekejVolnouMys () DECLARE SUB Cekej (cas!) DECLARE SUB Nakresli (File$) DECLARE SUB MakeHelp (File$) DECLARE SUB Help (x1!, x2!, QUICK1!, QUICK2!, QUICK3!) DECLARE SUB MysUkazKurzor (x%, y%) DECLARE SUB MysNactiPozadi (x%, y%, PodKurzorem%()) DECLARE SUB MysVratPozadi (x%, y%, PodKurzorem%()) DECLARE SUB MouseHide () DECLARE SUB MouseShow () DECLARE SUB MouseStatus (lb%, rb%, xmouse%, ymouse%) DECLARE SUB MouseDriver (AX%, BX%, CX%, DX%) DECLARE FUNCTION MouseInit% () DIM LockX AS INTEGER, LockY AS INTEGER DIM x AS INTEGER, y AS INTEGER, lx AS INTEGER, ly AS INTEGER DIM lxx AS INTEGER, lyy AS INTEGER DIM PodKurzorem(3, 3) AS INTEGER, Zaloha(3200) DIM FileToVerify AS STRING, FileOK AS INTEGER DIM ZacatekKresleni AS INTEGER, KonecKresleni AS INTEGER DIM PovolBod AS INTEGER, saving AS INTEGER DIM ba AS INTEGER, u AS INTEGER, v AS INTEGER DIM RX AS INTEGER, RY AS INTEGER, TextBoxCancel AS INTEGER DIM Pom1, Pom2, pom3, BarvaPopredi, BarvaHranic DIM Lab(32) AS STRING, BackOrFwd AS INTEGER DIM Txt(2) AS STRING, Rand AS INTEGER DIM chyba AS STRING, cchyby AS INTEGER DIM SHARED mouse$, olx, oly, Jazyk AS INTEGER, Buffer AS Rec DIM SHARED KeyFlags AS KeyboardFlags '------------------------------------------------------------ '**** promenne Zacatek/KonecKresleni ' 'Pri zacatku kresleni je treba kurzor nahradit tim co bylo ' 'pod nim, a po celou dobu tahu ho nezobrazovat(neni treba) ' 'na konci je treba hlidat aby pri uvolneni leveho tlacitka ' 'a zobrazeni kurzoru neznicil kurzor posledni pixel tahu!!! ' '**** promenna PovolBod ' 'Pri prvnim stisku tlacitka na stejne miste je treba zobrazit' 'bod ale pri opakovanem uz je to zbytecne plytvani (pri save)' '------------------------------------------------------------' GOSUB InitMouse COLOR 15: PRINT SPACE$(29); "Cekejte [Wait] ..." COLOR 7: PRINT "Vytvarim soubor fontu [Creating font file].." CALL CreateFontFile: PRINT "Nacitam soubor fontu [Reading font file].." CALL InitFont("$$font$$._m_"): Cekej (1) SCREEN 12: File$ = LTRIM$(RTRIM$(UCASE$(COMMAND$))) FileToVerify = File$: GOSUB FileVerify CALL MouseHide: CLS IF FileOK = -1 THEN GOSUB AppendF a = -1: BarvaPopredi = 14: BarvaHranic = 14 Jazyk = Language: GOSUB InitStrings '===========================================================Hlavni cyklus=- DO: '' ly = ymouse%: lx = xmouse% '' CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) '' IF LockX THEN xmouse% = lx '' IF LockY THEN ymouse% = ly '' '-------------------------------------------------Leve Nestisknuto- '' IF NOT (lb%) THEN ' '' IF (rb% AND (NOT (Rand))) THEN ' '' GOSUB PopUpMenu '< x OR ly <> y THEN ' '' lxx = x: lyy = y: y = ly: x = lx: PovolBod = -1 ' '' CALL MysVratPozadi(x, y, PodKurzorem()) ' '' x = lxx: y = lyy ' '' PicSafe: ' '' CALL MysNactiPozadi(x, y, PodKurzorem()) ' '' RESTORE KurzorSipka ' '' CALL MysUkazKurzor(x, y) ' '' END IF ' '' ZacatekKresleni = -1 ' '' '---------------------------------------------------Leve stisknute-' '' ELSEIF lb% THEN ' '' IF rb% THEN ' '' BarvaPopredi = INT(RND * 13) + 1 '<< lx OR y <> ly) OR PovolBod THEN ' '' LINE (x, y)-(lx, ly), BarvaPopredi ' '' IF saving THEN '--------------Zapis do soub.-' '' Buffer.Ukon = "L" ' '' Buffer.x = x ' '' Buffer.y = y ' '' Buffer.lx = lx ' '' Buffer.ly = ly ' '' Buffer.c = BarvaPopredi ' '' PUT #1, , Buffer ' '' PovolBod = 0 ' '' END IF ' '' END IF ' '' END IF ' '' '------------------------------------------------------------------' '' IF NOT (lb% OR rb%) THEN '' CALL GetKeybFlags '' IF KeyFlags.Ctrl THEN '' CALL MysVratPozadi(x, y, PodKurzorem()) '' CALL UkazBarvy(INT(x), INT(y), BarvaPopredi, BarvaHranic, Lab(10), Lab(11)) END IF SELECT CASE GetKey(1) '' CASE -60: GOSUB UlozBitmapu '' CASE -59: GOSUB Help '' CASE 13: GOSUB Vybarvi '' CASE 27: GOSUB Konec '' CASE 43: BackOrFwd = 1: GOSUB BckOrFwd '' CASE 45: BackOrFwd = -1: GOSUB BckOrFwd '' CASE 98, 66: GOSUB GetB '' CASE 99, 67: GOSUB GetC '' CASE 101, 69: GOSUB eSave '' CASE 106, 74: GOSUB Language '' CASE 108, 76: IF NOT (lb%) THEN GOSUB MakeLine '' CASE 109, 77: GOSUB JumpTo '' CASE 110, 78: GOSUB ClearPaper '' CASE 111, 79: GOSUB fOpen '' CASE 114, 82: GOSUB RepeatAll '' CASE 115, 83: GOSUB Save '' CASE 116, 84: GOSUB Truncate '' CASE 120, 88: LockX = NOT (LockX) '' CASE 121, 89: LockY = NOT (LockY) '' END SELECT '' ELSE '' a$ = INKEY$ 'Aby se buffer klavesnice pri stisku mysi promazal.. '' END IF '' LOOP '' GOTO Konec '' '========================================================================='' '--------------------------------------------------------------------------- Save: ' CALL MysVratPozadi(x, y, PodKurzorem()): GET (0, 0)-(630, 15), Zaloha ' Oprava: ' LOCATE 1, 1: COLOR 11: PRINT Lab(14): Pom1 = 11: Pom2 = 64 ' GOSUB TextBox ' IF TextBoxCancel THEN ' TextBoxCancel = 0 ' PUT (0, 0), Zaloha, PSET ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y): RETURN ' END IF ' FileToVerify = ff$: GOSUB FileVerify ' IF FileOK = -1 THEN ' PUT (0, 0), Zaloha, PSET ' FileToVerify = "QUICK5.$!$": GOSUB FileVerify: Pom2 = FileOK ' SELECT CASE Confirm(190, 150, Lab(0), Lab(1), Lab(2), Lab(3), Lab(4), Pom2, "QUICK5.$!$") CASE 0: GOTO Oprava ' CASE 2: File$ = ff$: CLOSE #1: GOTO AppendF ' END SELECT ' File$ = ff$ ' CLOSE #1: KILL ff$ ' OPEN File$ FOR BINARY AS #1 ' saving = -1: CLS ' ELSEIF FileOK = 53 THEN ' CLOSE #1: File$ = ff$ ' OPEN File$ FOR BINARY AS #1 ' saving = -1: CLS ' ELSE ' PUT (0, 0), Zaloha, PSET ' CALL MsgBox("", Lab(13), Lab(20)) ' PUT (0, 0), Zaloha, PSET ' END IF ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' fOpen: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' CLOSE #1 ' GET (0, 0)-(630, 15), Zaloha ' LOCATE 1, 1: COLOR 11: PRINT Lab(14): Pom1 = 11: Pom2 = 64 ' GOSUB TextBox ' IF NOT (TextBoxCancel) THEN ' FileToVerify = ff$: GOSUB FileVerify ' IF FileOK = -1 THEN ' File$ = ff$: CLS : GOTO AppendF ' ELSE ' PUT (0, 0), Zaloha, PSET ' CALL MsgBox("", Lab(13), Lab(20)) ' END IF ' END IF ' PUT (0, 0), Zaloha, PSET ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' AppendF: ' Nakresli (File$) ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' CLOSE #1 ' OPEN File$ FOR BINARY AS #1 ' SEEK #1, LOF(1) + 1 ' saving = -1 ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' eSave: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF NOT (saving) THEN ' CALL MsgBox(Lab(12), Lab(21), Lab(20)) ' RETURN ' END IF ' CLOSE #1 ' CALL MsgBox("", Lab(22), Lab(20)) ' saving = 0 ' RETURN ' ' Truncate: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF NOT (saving) THEN ' CALL MsgBox(Lab(12), Lab(21), Lab(20)) ' RETURN ' END IF ' CLOSE #1 ' ZnTrunc: ' IF Truncate(File$, File2$, 0, Txt()) = -1 THEN GOTO KnTrunc ' FileToVerify = File2$: GOSUB FileVerify ' IF (FileOK = 53) OR (FileOK = 52) THEN ' IF Truncate(File$, File2$, -1, Txt()) = -1 THEN GOTO KnTrunc ' ELSE ' CALL MsgBox(Lab(18), Lab(19), Lab(20)) ' GOTO ZnTrunc ' END IF ' KnTrunc: ' GOTO AppendF ' RETURN ' ' UlozBitmapu: ' CALL MysVratPozadi(x, y, PodKurzorem()): GET (0, 0)-(630, 15), Zaloha ' OpravaBMP: ' LOCATE 1, 1: COLOR 11: PRINT Lab(14): Pom1 = 11: Pom2 = 64 ' GOSUB TextBox ' IF TextBoxCancel THEN ' TextBoxCancel = 0 ' PUT (0, 0), Zaloha, PSET ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y): RETURN ' END IF ' FileToVerify = ff$: GOSUB FileVerify ' IF FileOK = -1 THEN ' SELECT CASE DlgBox(Lab(30), "", Lab(31), Lab(32)) ' CASE 1: PUT (0, 0), Zaloha, PSET ' BMP$ = ff$ ' KILL BMP$ ' CALL SaveBMP(BMP$) ' CASE 2: GOTO OpravaBMP ' END SELECT ' ELSEIF FileOK = 53 THEN ' BMP$ = ff$ ' PUT (0, 0), Zaloha, PSET ' CALL SaveBMP(BMP$) ' ELSE ' PUT (0, 0), Zaloha, PSET ' CALL MsgBox("", Lab(13), Lab(20)) ' PUT (0, 0), Zaloha, PSET ' END IF ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' '---------------------------------------------------------------------------' '---------------------------------------------------------- DelCache: ' FileToVerify = "QUICK1.$!$": GOSUB KillIt ' FileToVerify = "QUICK2.$!$": GOSUB KillIt ' FileToVerify = "QUICK3.$!$": GOSUB KillIt ' FileToVerify = "QUICK4.$!$": GOSUB KillIt ' FileToVerify = "QUICK5.$!$": GOSUB KillIt ' FileToVerify = "QUICK6.$!$": GOSUB KillIt ' FileToVerify = "$$font$$._m_": GOSUB KillIt ' RETURN ' ' KillIt: ' GOSUB FileVerify: IF FileOK = -1 THEN KILL FileToVerify ' RETURN ' ' FileVerify: ' ON ERROR GOTO FileNotExist ' FileOK = 0 ' OPEN FileToVerify FOR INPUT AS #2 ' IF FileOK = 0 THEN ' FileOK = -1: CLOSE #2 ' END IF ' ON ERROR GOTO ErrorSimulate ' RETURN ' FileNotExist: ' FileOK = ERR ' RESUME NEXT ' RETURN ' ' ErrorSimulate: ' RESTORE ErrorData ' saving = 0 cchyby = ERR ' FOR Pom1 = 1 TO ERR ' READ chyba ' NEXT Pom1 ' SELECT CASE DlgBox(Lab(29), chyba, Lab(27), Lab(28)) ' CASE 1: RESUME NEXT ' CASE 2: ERROR ERR ' END SELECT ' END ' '----------------------------------------------------------' '-------------------------------------------------------------------------- ClearPaper: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF DlgBox(Lab(23), Lab(24), Lab(25), Lab(26)) = 2 THEN RETURN ' RESTORE KurzorSipka ' CLS : CALL MysNactiPozadi(x, y, PodKurzorem()): CALL MysUkazKurzor(x, y) ' RETURN ' ' Vybarvi: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' PAINT (xmouse%, ymouse%), BarvaPopredi, BarvaHranic ' IF saving THEN ' Buffer.Ukon = "#" ' Buffer.x = xmouse% ' Buffer.y = ymouse% ' Buffer.lx = BarvaPopredi ' Buffer.ly = BarvaHranic ' Buffer.c = -6 ' PUT #1, , Buffer ' END IF ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' GetC: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' BarvaPopredi = GetColor(Lab(11), BarvaPopredi, 1) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' GetB: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' BarvaHranic = GetColor(Lab(10), BarvaHranic, 2) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' MakeLine: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF saving AND PutLine(xmouse%, ymouse%, BarvaPopredi) THEN ' PUT #1, , Buffer ' END IF ' CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' '--------------------------------------------------------------------------' '------------------------------------------------------------------------- JumpTo: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' GET (0, 0)-(639, 15), Zaloha ' IF NOT (saving) THEN ' CALL MsgBox(Lab(12), Lab(21), Lab(20)) ' GOTO StornoGoBack ' END IF ' ff$ = Lab(15) + STR$(LOF(1) \ 11) + Lab(16) + STR$(LOC(1) \ 11) + Lab(17)' LOCATE 1, 1: COLOR 11 ' PRINT ff$ ' Pom1 = LEN(ff$) + 1 ' Pom2 = 80 - LEN(ff$) ' ff$ = "" ' GOSUB TextBox ' IF TextBoxCancel THEN GOTO StornoGoBack ' PUT (0, 0), Zaloha, PSET ' IF (LOF(1) >= VAL(ff$)) AND (VAL(ff$) >= 1) THEN ' Pom1 = VAL(ff$) ' IF Pom1 > (LOF(1) / 11) THEN Pom1 = (LOF(1) / 11) ' ChangeView: ' SEEK #1, 1 ' CLS ' FOR i = 1 TO LOF(1) + 1 ' GET #1, , Buffer ' SELECT CASE Buffer.Ukon ' CASE "L": LINE (Buffer.x, Buffer.y)-(Buffer.lx, Buffer.ly), Buffer.c ' CASE "#": PAINT (Buffer.x, Buffer.y), Buffer.lx, Buffer.ly ' END SELECT ' IF i >= Pom1 THEN EXIT FOR ' NEXT i ' GET (0, 0)-(639, 15), Zaloha ' END IF ' StornoGoBack: ' TextBoxCancel = 0 ' PUT (0, 0), Zaloha, PSET ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' RepeatAll: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF NOT (saving) THEN ' CALL MsgBox(Lab(12), Lab(21), Lab(20)) ' RETURN ' END IF ' Pom1 = LOF(1) / 11 ' GOTO ChangeView ' RETURN ' ' BckOrFwd: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF NOT (saving) THEN ' CALL MsgBox(Lab(12), Lab(21), Lab(20)) ' RETURN ' END IF ' Pom1 = LOC(1) / 11 + BackOrFwd ' GOTO ChangeView ' RETURN ' '-------------------------------------------------------------------------' '------------------------------------------------- Language: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' GOSUB DelCache ' Jazyk = Language ' GOSUB InitStrings ' CALL MysNactiPozadi(x, y, PodKurzorem()) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' ' InitStrings: ' SELECT CASE Jazyk ' CASE 1: RESTORE MsgBoxesDataCz ' CASE 2: RESTORE MsgBoxesDataEn ' END SELECT ' FOR i = 0 TO 32 ' READ Lab(i) ' NEXT i ' RETURN ' '-------------------------------------------------' '------------------------------------------------------------------ TextBox: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' TextBoxCancel = Klavesnicka(ff$, Pom1, Pom2) ' RETURN ' ' PopUpMenu: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' IF x = 0 AND y = 0 THEN ' CALL UkazBarvy(INT(x), INT(y), BarvaPopredi, BarvaHranic, Lab(10), Lab(11))' RETURN ' END IF ' FileToVerify = "QUICK6.$!$": GOSUB FileVerify: Pom1 = FileOK ' RESTORE KurzorSipka ' SELECT CASE Menu(xmouse%, ymouse%, Pom1) ' CASE 0: CALL MysUkazKurzor(x, y): RETURN ' CASE 1: GOTO Save ' CASE 2: GOTO fOpen ' CASE 3: GOTO eSave ' CASE 4: GOTO JumpTo ' CASE 5: GOTO RepeatAll ' CASE 6: GOSUB ClearPaper ' CASE 7: GOTO Vybarvi ' CASE 8: BarvaHranic = GetColor(Lab(10), BarvaHranic, 2) ' CASE 9: BarvaPopredi = GetColor(Lab(11), BarvaPopredi, 1) ' CASE 10: GOTO Help ' CASE 11: GOSUB MakeLine ' CASE 12: GOTO Konec ' END SELECT ' CALL MysUkazKurzor(x, y) ' RETURN ' ' Help: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' FileToVerify = "QUICK1.$!$": GOSUB FileVerify: Pom1 = FileOK ' FileToVerify = "QUICK2.$!$": GOSUB FileVerify: Pom2 = FileOK ' FileToVerify = "QUICK3.$!$": GOSUB FileVerify: pom3 = FileOK ' CALL Help(190, 150, Pom1, Pom2, pom3) ' RESTORE KurzorSipka: CALL MysUkazKurzor(x, y) ' RETURN ' '------------------------------------------------------------------' '---------------------------------------------------------------------- InitMouse: ' RESTORE Mousedata ' mouse$ = SPACE$(57) ' FOR i% = 1 TO 57 ' READ a$ ' h$ = CHR$(VAL("&H" + a$)) ' MID$(mouse$, i%, 1) = h$ ' NEXT i% ' MS% = MouseInit% ' IF NOT MS% THEN ' SCREEN 0: CLS ' GOSUB DelCache ' PRINT "Ovladac mysi nenalezen / Mouse Driver Not Found": END ' END IF ' LET AMOUSE$ = "YES" ' RETURN ' ' Konec: ' CALL MysVratPozadi(x, y, PodKurzorem()) ' FileToVerify = "QUICK4.$!$": GOSUB FileVerify: Pom2 = FileOK ' SELECT CASE Confirm(190, 150, Lab(5), Lab(6), Lab(7), Lab(8), Lab(9), Pom2, "QUICK4.$!$") CASE 0: RESTORE KurzorSipka: CALL MysUkazKurzor(x, y): RETURN ' CASE 1: CLOSE #1: SCREEN 0: GOSUB DelCache: END ' CASE 2: RESTORE KurzorSipka: CALL MysUkazKurzor(x, y): RETURN ' END SELECT ' '----------------------------------------------------------------------' Mousedata: DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B,5E,08,8B DATA 0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53,8B,5E,0C,89,07,58 DATA 8B,5E,0A,89,07,8B,5E,08,89,0F,8B,5E,06,89,17,5D,CA,08,00 KurzorSipka: DATA 15,15,15,00,15,15,01,00,15,01,15,00,01,00,01,15 KurzorOpacnaSipka: DATA 00,15,15,15,00,00,15,15,00,15,01,15,15,01,00,01 KurzorKruh: DATA 01,15,15,01,15,15,15,15,15,15,15,15,01,15,15,01 KurzorKruznice: DATA 08,15,15,08,15,08,08,15,15,08,08,15,08,15,15,08 KurzorTercik: DATA 15,08,08,15,08,15,15,08,08,15,15,08,15,08,08,15 KurzorCtverec: DATA 15,11,00,12,11,11,12,00,00,12,11,11,12,00,11,15 KurzorStinovanaSipka: DATA 15,15,07,08,15,15,07,00,07,07,15,08,08,00,08,07 KurzorCz: DATA 09,15,15,15,09,09,15,15,09,09,12,12,09,12,12,12 KurzorEn: DATA 12,09,09,12,09,12,12,01,09,12,12,09,12,09,09,12 MenuDataEn: DATA "Create new file(S)",-1 DATA "Open file (O)",-1 DATA "End saving (E)",-1 DATA "",0 DATA "Jump to move # (M)",-1 DATA "Redo all moves (R)",-1 DATA "",0 DATA "Clear screen (N)",-1 DATA "Fill area (Enter)",-1 DATA "",0 DATA "Border Color (B)",-1 DATA "Fill Color (C)",-1 DATA "",0 DATA "QuickHelp (F1)",-1 DATA "",0 DATA "Line from here (L)",-1 DATA "",0 DATA "Exit (Esc)",-1 MenuDataCz: DATA "Ukl dat obr zek(S)",-1 DATA "Otevý¡t soubor (O)",-1 DATA "Pýestat ukl dat(E)",-1 DATA "",0 DATA "Pýej¡t na tah..(M)",-1 DATA "Vçechny tahy (R)",-1 DATA "",0 DATA "¬ist  obrazovka(N)",-1 DATA "Vyplnit plochu(<Ù)",-1 DATA "",0 DATA "Hranice vìplnØ (B)",-1 DATA "Barva vìplnØ (C)",-1 DATA "",0 DATA "N povØda (F1)",-1 DATA "",0 DATA "Rovn  Ÿ ra (L)",-1 DATA "",0 DATA "Konec (Esc)",-1 MsgBoxesDataEn: DATA " File already exists","!Destroy","Append","!","A" DATA " Quit, are you sure?","OK Exit!","Return","O","R" DATA " Borders"," Color" DATA " You must save - or" DATA " Bad file name" DATA "FileName: " DATA "Position of last line in picture is ",", actual is ",". Jump to>" DATA "File already exists"," or bad filename"," Hmmmm" DATA " open file at first" DATA "End of saving. OK." DATA "Command doesn't change opened file!" DATA "Only clears the screen." DATA " Finish"," Cancel" DATA " Ignore"," Accept" DATA "Warning, some error has occured" DATA "Warning BMP file already exists!" DATA "Continue"," Back" MsgBoxesDataCz: DATA " Soubor u§ existuje","!ZniŸit ","Otevý¡t","!","O" DATA " UkonŸit program? ","Ano Chci","Nechci","A","N" DATA " Hranice"," Vìplå" DATA "Mus¡te ukl dat, nebo" DATA "æpatn‚ jm‚no souboru" DATA "Soubor : " DATA "Posledn¡ tah v obr zku je",", aktualn¡ je",". SkoŸ na tah>" DATA " Soubor ji§ existuje"," nebo je jm‚no çpatnØ"," JasnØ" DATA " otevý¡t obr zek" DATA "Konec ukl d n¡. OK." DATA "Pý¡kaz nezmØn¡ obsah ukl dan‚ho souboru!" DATA "Bude pouze smaz na obrazovka." DATA "DokonŸit","Tak nic!" DATA "Ignoruj"," Spadni" DATA "Pozor nastala chyba v aplikaci" DATA "Pozor vybranì soubor BMP u§ existuje!" DATA "Pýepsat"," ZpØt" HelpDataEn: DATA " Keys" DATA "<+,-> one move back,forward" DATA " X/Y axis move on/off" DATA " select border color" DATA "with which is AREA bordered" DATA " fill AREA under" DATA " cursor with fill color " DATA " choose language En/Cz" DATA " save sequency of moves" DATA " VASP PsychoDraw" DATA " (c) Matej Kasper" DATA " konikula@post.cz" DATA " 05.08.2002 21:08 p" DATA " FreeWare" DATA " Do nothin'- Just Enjoy!" DATA " Quick color viewer" DATA " You can call it by clicking" DATA " right button in left upper" DATA " edge of screen(Coord.[0,0])" DATA "Print screen to Win BMP" DATA "Save all drawing animated" DATA " Right + left - random color" DATA "Rest of shortcut keys > menu" HelpDataCz: DATA " Kl vesy" DATA "<+,-> jeden tah vpýed,zpØt" DATA " pohyb po ose zap/vyp" DATA " vybere barvu hranice" DATA "kterou je ohraniŸena PLOCHA" DATA " vypln¡ PLOCHU pod" DATA " kurzorem barvou tu§ky " DATA " vybrat jazyk Cz/En" DATA " ulo§it sekvenci tah…" DATA " VASP PsychoDraw" DATA " (c) MatØj Kasper" DATA " konikula@post.cz" DATA " 05.08.2002 21:08 h" DATA " FreeWare" DATA " ProstØ se bavte.......!" DATA "Rychl‚ zobrazen¡ barev" DATA " D  se tak‚ vyvolat pravìm" DATA " tlaŸ¡tkem myçi v lev‚m" DATA "horn¡m rohu(Souýadnice[0,0])" DATA "Expresn¡ ulo§en¡ do BMP" DATA " Ukl d  pr…bØh kreslen¡" DATA " Prav‚ + lev‚ n hodn  barva" DATA "Zbytek kl ves najdete v menu" MiniKeybDataCz: DATA Mal  kl vesnice pro myç DATA "Vlo§it .."," Uma§ "," PotvrÔ ","Zruç Akci" MiniKeybDataEn: DATA Mini keyboard for mouse DATA "Insert.. ","Backspace"," Enter "," Escape " MiniKeybdata: DATA A,B,C,D,E,F,G,H,I,J,K,L,M DATA N,O,P,Q,R,S,T,U,V,W,X,Y,Z DATA 1,2,3,4,5,6,7,8,9,0,.,_ TruncateDataCz: DATA Ulo§it sekvenci tah…,od tahu,po tah,soubor TruncateDataEn: DATA Save moves sequence,from,to move,file FontData: 'Zkomprimovany obsah souboru s fontem DATA 1,0,F,81,81,7E,81,A5,81,81,BD,B9,C1,81,7E,0,0,0,81,81,7E,FF,DB,FF,FF,C3,E3,FD,FF,7E,1,0,5,6C,92,6D,EE,FE,FE,FE,7D DATA BA,54,28,10,0,0,0,0,28,54,38,7C,FE,7C,38,54,28,1,0,6,18,3C,3C,E7,E7,E7,18,99,7E,1,0,5,66,99,3C,7E,FF,FF,7E,18,99 DATA 7E,1,0,12,1,FF,6,E7,C3,C3,E7,1,FF,5,1,0,4C,42,FF,66,7E,66,66,66,66,6E,EE,EC,C0,1,0,5,18,18,DB,3C,E7,3C,DB,18,18 DATA 0,0,0,0,80,C0,E0,F0,F8,FE,F8,F0,E0,C0,80,0,0,0,0,2,6,E,1E,3E,FE,3E,1E,E,6,2,1,0,5,18,3C,7E,18,18,18,7E,3C DATA 18,1,0,6,1,66,7,0,66,66,1,0,5,7F,DB,DB,DB,7B,1,1B,5,0,0,0,0,7C,C6,60,38,6C,C6,C6,6C,38,C,C6,7C,1,0,A,FE DATA FE,FE,FE,1,0,5,18,3C,7E,18,18,18,7E,3C,18,7E,1,0,5,18,3C,7E,1,18,7,1,0,5,1,18,7,7E,3C,18,1,0,8,18,C,FE,C DATA 18,1,0,A,30,60,FC,60,30,1,0,52,18,3C,3C,3C,18,18,18,0,18,18,0,0,0,0,82,C6,C6,44,28,44,1,0,B,44,6C,FE,6C,6C,6C DATA FE,6C,28,0,0,0,28,28,7C,AA,AA,A8,78,2E,2A,AA,AA,7C,28,28,0,0,0,0,6,E2,E6,C,18,30,60,C7,87,A0,40,0,0,80,F8,6C,6C DATA 38,76,DD,CC,CC,CD,76,0,0,0,8,14,30,30,20,1,0,C,4,18,30,60,30,60,30,60,18,4,1,0,5,20,18,C,C,6,C,6,C,18,20 DATA 1,0,8,42,3C,E7,3C,42,1,0,A,10,18,7E,18,8,1,0,E,8,18,18,20,1,0,8,44,AA,10,1,0,10,18,18,1,0,6,4,2,6,C DATA 18,30,60,C0,80,40,0,0,0,0,3C,42,45,49,85,99,A2,A2,44,38,0,0,0,4,A,18,38,78,98,18,18,1C,1A,9A,64,1,0,5,7C,C6,66 DATA C,18,30,60,CC,D6,F2,1,0,5,38,6E,42,6,C,1E,6,86,CE,7C,1,0,5,30,10,30,64,C4,FE,8,18,30,30,1,0,5,36,5A,40,40,7C DATA 6,46,86,C6,7C,1,0,5,38,64,C0,C0,FC,C6,C6,C6,C6,7C,1,0,5,DE,B6,C6,C,18,FC,30,30,30,30,1,0,5,7C,C6,C6,C6,7C,C6,C6 DATA C6,C6,7C,1,0,5,7C,C6,C6,C6,C6,7E,6,86,CC,78,1,0,7,18,18,0,0,0,18,18,1,0,8,18,18,0,0,0,18,18,30,1,0,6,6 DATA C,18,30,60,30,18,C,6,1,0,8,7E,0,0,7E,1,0,9,60,30,18,C,6,C,18,30,60,1,0,5,7C,C6,86,C,8,10,8,0,18,18,1 DATA 0,6,7C,82,82,BA,AA,BE,80,82,7C,1,0,5,2,6,E,16,26,3E,26,26,A2,C2,1,0,5,7C,A6,66,26,3C,26,23,23,A6,7C,1,0,5,3C DATA 66,C2,C2,CC,C0,C4,C2,66,3C,1,0,5,78,AC,A6,76,26,26,26,26,AC,78,1,0,5,C,3A,72,E0,68,78,70,64,6A,FE,10,0,0,0,0,E6 DATA 7A,60,60,70,E8,60,60,60,F0,1,0,5,3C,66,C7,C0,C0,DE,D2,D2,62,3C,1,0,5,C6,6C,6C,6C,7C,6C,6C,6C,6C,C6,1,0,5,24,5A,1 DATA 18,6,5A,24,1,0,5,1E,2D,C,C,C,C,6C,AC,8C,78,1,0,5,61,B1,B3,36,1C,18,3C,36,63,E1,1,0,5,78,B0,B0,70,30,38,30,32 DATA B2,7E,1,0,5,C2,66,7E,7A,6A,62,62,64,44,C4,1,0,5,C6,E5,74,7C,5C,4C,44,46,C5,C6,1,0,5,20,70,C8,D4,8C,86,C4,C4,68,30 DATA 0,0,0,0,18,64,E6,66,66,FC,60,E0,70,68,F0,1,0,5,20,70,C8,C4,84,84,C4,F4,58,38,8,6,0,0,0,7C,B2,B2,72,3C,38,34,34 DATA A5,62,1,0,5,7C,C6,CC,60,38,C,76,D6,C6,7C,0,0,0,0,F0,FE,9F,59,58,98,30,30,30,60,F0,0,0,0,0,4,8A,CA,C6,C2,C3,C2 DATA C2,C2,C6,7C,1,0,5,43,A2,A2,26,26,26,26,1C,8,8,1,0,5,C2,C3,C2,C2,D2,D2,DA,7E,2C,24,1,0,6,42,A7,2C,1C,18,10,39,65 DATA C2,1,0,5,40,A3,22,22,3C,18,18,18,5A,3C,1,0,5,C0,FC,9E,4C,18,30,6C,D2,C2,FC,1,0,5,3E,38,1,30,6,38,3E,1,0,6,80 DATA C0,E0,70,38,1C,E,6,2,1,0,5,7C,1C,1,C,6,1C,7C,0,0,0,0,18,2C,C6,1,0,18,FF,0,30,30,18,1,0,11,78,C,7C,CC,CD DATA CD,76,1,0,5,60,A0,A0,38,2C,26,26,26,A6,7C,1,0,8,7C,C6,C2,C0,C2,C6,7C,0,0,0,0,2,D,C,C,3C,6C,CC,CC,CD,CD,76,1 DATA 0,8,7C,E2,FE,C0,CE,C2,7C,1,0,5,1C,36,30,34,78,B0,30,30,B0,78,1,0,8,76,C9,C8,C8,C8,C8,7C,8,88,78,0,0,60,A0,20,2C DATA 3E,36,62,22,A2,66,1,0,5,18,18,0,30,58,18,18,18,1A,C,1,0,5,6,6,0,E,16,16,E,7,6,26,66,66,3C,0,0,F0,30,36,3D DATA 38,70,B0,78,3D,F6,1,0,5,38,58,38,18,18,1C,18,18,18,3C,1,0,8,6C,DA,CA,9A,DA,52,D6,1,0,8,58,A4,A6,66,36,A2,62,1,0 DATA 8,7D,1,C6,5,7C,1,0,8,5C,A6,A6,26,66,B6,7C,20,A0,70,0,0,0,0,40,36,59,CE,C8,CC,5A,38,18,8,C,1,0,5,5C,B6,36,30 DATA 70,B0,70,1,0,8,7C,E6,70,1C,46,AE,7C,1,0,5,10,30,30,FC,30,30,38,34,36,1C,1,0,8,C8,C8,4C,6C,6C,6D,36,1,0,8,C6,6A DATA 66,62,64,3C,8,1,0,8,86,85,95,D4,D4,FC,6C,1,0,8,C2,66,3C,18,3C,76,E2,1,0,8,C6,57,53,4E,62,7E,3E,C,98,70,1,0,5 DATA DE,AC,18,30,60,EC,BA,1,0,5,E,18,18,18,70,18,18,18,18,E,1,0,5,18,18,18,18,0,1,18,5,1,0,5,70,18,18,18,E,18,18 DATA 18,18,70,1,0,5,76,DC,1,0,F,10,38,6C,C6,C6,C6,FE,1,0,6,3C,66,C2,C0,C0,C4,CA,C2,66,3C,8C,C6,7C,0,0,44,6C,0,C8,C8 DATA 4C,6C,6C,6D,36,1,0,5,C,18,0,7C,E2,FE,C0,CE,C2,7C,0,0,0,0,10,38,6C,0,78,C,7C,CC,CD,CD,76,1,0,5,CC,0,0,78,C DATA 7C,CC,CD,CD,76,0,0,0,0,10,28,10,0,C8,C8,4C,6C,6C,6D,36,1,0,5,C,18,0,7C,C6,C2,C0,C2,C6,7C,1,0,8,7C,C6,C2,C0,C2 DATA C6,7C,18,8C,78,0,0,38,1A,1E,1C,18,38,78,58,18,3C,1,0,6,6C,0,7C,E2,FE,C0,CE,C2,7C,0,0,0,28,28,0,70,C8,D4,8C,86,C4 DATA C4,68,30,1,0,5,28,6C,0,7D,1,C6,5,7C,0,0,0,0,10,38,44,0,30,58,18,18,18,1A,C,0,0,0,C,18,C0,FC,9E,4C,18,30,6C DATA D2,C2,FC,1,0,5,1B,0,E,16,26,3E,26,26,A2,C2,0,0,0,3C,0,3C,66,C2,C2,CC,C0,C4,C2,66,3C,0,0,0,18,30,C,3A,72,E0,68 DATA 78,70,64,6A,FE,10,0,0,70,4,78,B0,B0,70,38,30,30,32,BA,7E,0,0,0,C,18,0,24,5A,1,18,5,5A,24,0,0,0,0,10,38,44,0 DATA 7D,1,C6,5,7C,1,0,5,28,28,0,7D,1,C6,5,7C,0,0,0,0,4,7A,B2,B6,70,38,30,30,32,BA,7E,0,0,0,6,2,3A,5A,38,18,18 DATA 1C,18,18,18,3C,0,0,0,38,0,7C,C6,CC,60,38,C,76,D6,C6,7C,1,0,5,C,18,0,7C,E6,70,1C,46,AE,7C,0,0,0,0,6C,0,70,C8 DATA D4,8C,86,C4,C4,68,30,0,0,0,50,4,8A,CA,C6,C2,C3,C2,C2,C2,C6,7C,0,0,0,B,6,F0,9F,59,58,98,30,30,30,60,F0,0,0,0,0 DATA 6,12,34,30,FC,30,30,38,34,36,1C,1,0,5,70,A4,2C,38,70,E0,A0,22,26,FE,1,0,A,C6,6C,38,6C,C6,1,0,5,6C,38,0,7C,C6,C2 DATA C0,C2,C6,7C,0,0,0,0,18,30,60,0,78,C,7C,CC,CD,CD,76,1,0,5,C,18,0,30,58,18,18,18,1A,C,1,0,5,C,18,0,7D,1,C6 DATA 5,7C,1,0,5,18,30,0,C8,C8,4C,6C,6C,6D,36,1,0,5,2,6,E,16,26,3E,26,26,A2,C6,8,6,1,0,6,78,C,7C,CC,CC,CC,76,18 DATA 30,1E,6C,38,C0,FC,9E,4C,18,30,6C,D2,C2,FC,1,0,5,2C,18,0,DE,AC,18,30,60,EC,BA,0,0,0,18,30,C,3A,72,E0,68,78,70,64,6A DATA FE,1C,8,C,1,0,5,7C,E2,FE,C0,CE,C2,7C,70,40,60,1,0,11,18,30,0,DE,AC,18,30,60,EC,BA,0,0,0,6C,38,0,3C,66,C2,CC,C0 DATA C4,C2,66,3C,1,0,8,7C,E6,70,1C,46,AE,7C,18,4,18,1,0,5,36,6C,D8,6C,36,1,0,A,6C,36,1B,36,6C,1,0,5,11,44,11,44,11 DATA 44,11,44,11,44,11,44,11,44,11,55,AA,55,AA,55,AA,55,AA,55,AA,55,AA,55,AA,55,DD,77,DD,77,DD,77,DD,77,DD,77,DD,77,DD,77,DD,1 DATA 18,16,F8,1,18,7,6,C,2,6,E,16,26,3E,26,26,A2,C2,0,0,0,36,1C,2,6,E,16,26,3E,26,26,A2,C2,0,0,0,6C,38,C,3A,72 DATA E0,68,78,70,64,6A,FE,0,0,0,38,0,7C,C6,CC,60,38,C,76,D6,C6,7C,30,10,8,1,36,5,F6,6,F6,1,36,16,1,0,5,FE,6,F6,1 DATA 36,C,F6,6,FE,1,0,7,18,18,C0,FC,9E,4C,18,30,6C,D2,C2,FC,1,0,5,18,18,0,DE,AC,18,30,60,EC,BA,1,0,A,F8,1,18,E,1F DATA 1,0,7,1,18,7,FF,1,0,E,FF,1,18,E,1F,1,18,7,1,0,7,FF,1,0,7,1,18,7,FF,1,18,7,44,7C,2,6,E,16,26,3E,26 DATA 26,A2,C2,1,0,5,24,3C,0,78,C,7C,CC,CD,CD,76,0,0,0,1,36,5,37,30,3F,1,0,C,3F,30,37,1,36,C,F7,0,FF,1,0,C,FF DATA 0,F7,1,36,C,37,30,37,1,36,7,1,0,5,FF,0,FF,1,0,7,1,36,5,F7,0,F7,1,36,7,1,0,5,C6,7C,C6,C6,C6,7C,C6,0,0 DATA 0,0,2,C,3E,C,3C,6C,CC,CC,CD,CD,76,1,0,5,78,AC,A6,26,F6,F6,26,26,AC,78,0,0,0,6C,38,0,78,A4,A6,76,26,26,26,AC,78 DATA 0,0,0,6C,0,C,3A,72,E0,68,78,70,64,6A,FE,10,0,0,0,2,C,D,D,3D,6C,CC,CC,CD,CD,76,0,0,0,6C,38,0,C6,65,74,3C,2C DATA 24,66,65,C6,0,0,0,C,18,0,24,5A,1,18,5,5A,24,0,0,0,18,24,0,24,5A,1,18,5,5A,24,0,0,0,0,4,2C,18,0,7C,E2,FE DATA C0,CE,C2,7C,0,0,0,1,18,7,F8,1,0,E,1F,1,18,7,1,FF,F,1,0,7,1,FF,8,0,0,7E,7E,5A,1,18,6,3C,18,C,78,38,6C DATA 38,0,1,C6,7,7C,0,0,0,1,FF,7,1,0,8,C,18,0,70,C8,D4,8C,86,C4,C4,68,30,1,0,5,78,CC,CC,CC,D8,CC,C6,C6,C6,CC,0 DATA 0,0,38,4C,20,70,C8,D4,8C,86,C4,C4,68,30,0,0,0,C,18,D6,E5,74,7C,5C,4C,44,46,C5,C6,1,0,5,C,18,0,58,A4,A6,66,36,A2 DATA 62,1,0,5,24,18,0,58,A4,A6,66,36,A2,62,0,0,0,6C,38,0,7C,C6,62,38,C,76,D6,C6,7C,0,0,0,0,4,2C,18,0,7C,E6,70,1C DATA 46,AE,7C,0,0,0,38,0,7C,B2,B2,72,3C,38,34,34,A5,62,0,0,0,18,30,0,84,CA,C6,C3,C2,C2,C2,C6,7C,1,0,5,C,18,0,5C,B6 DATA 36,30,70,B0,70,0,0,0,28,50,4,8A,CA,C6,C3,C2,C2,C2,C6,7C,1,0,5,C,18,0,C6,57,53,4E,62,7E,3E,C,98,70,4,C,48,A3,22 DATA 22,3C,18,18,18,5A,3C,1,0,5,10,30,30,FC,30,30,38,34,36,1C,18,20,10,0,C,18,30,1,0,12,7E,1,0,8,36,6C,D8,1,0,17,30 DATA 60,3C,0,6C,38,1,0,D,C6,7C,1,0,D,7C,C6,60,38,6C,C6,C6,6C,38,C,C6,7C,1,0,6,18,18,0,7E,0,18,18,1,0,10,18,C,78 DATA 0,38,6C,6C,38,1,0,B,6C,6C,1,0,D,18,18,1,0,E,14,28,0,C8,C8,4C,6C,6C,6D,36,0,0,0,6C,38,0,7C,B2,B2,7C,38,34,34 DATA A5,62,0,0,0,0,4,2C,18,0,5C,B6,36,30,70,B0,70,1,0,7,1,7C,7,1,0,FF,0,0,0,0,XX ErrorData: DATA Next without For,Syntax error,Return without Gosub DATA Out of Data,Illegal function call,Overflow DATA Out of Memory,Label not defined,Subscript out of range DATA Duplicate definition,Division by zero,Illegal in direct mode DATA Type mismatch,Out of string space,,String formula too cmplx DATA Cannot continue,Function not defined,No resume DATA Resume without error,,,,Device timeout,Device fault DATA For without next,Out of paper,,While without wend DATA Wend without while,,,Duplicate label,,Sub not defined,,Argument number mismatch DATA Array not defined,Case else expected DATA Variable required,,,,,,,,,,Field overflow,Internal error DATA Bad filename or number,File not found,Bad file mode DATA File already open,Field status active,Device I/O error DATA File already exists,Bad record length,,Disk full DATA Input past end of file,Bad record number,Bad filename,,,Too many files DATA Device not avail,Communication buffer overflow,Permission denied DATA Disk not ready,Disk media error,Advanced feature unavailable DATA Rename across disks,Path/File acces error,Path not found BitmapData: 'Hlavicka DATA 66,77,118,176,4,0,0,0,0,0,118,0,0,0,40,0,0,0,128,2,0,0,224,1,0 DATA 0,1,0,4,0,0,0,0,0,0,176,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 'Paleta '0 '1 '2 '3 '4 DATA 4,2,4,0,164,2,4,0,4,166,4,0,164,166,4,0,4,2,164,0 '5 '6 '7 '8 DATA 164,2,164,0,0,79,157,0,164,166,164,0,84,82,84,0 '9 '10 '11 '12 DATA 252,82,84,0,84,250,84,0,252,250,84,0,84,82,252,0 '13 '14 '15 DATA 252,82,252,0,84,250,252,0,252,250,252,0 SUB Cekej (cas) DIM Pom Pom = TIMER: DO: LOOP UNTIL ((TIMER - Pom) > cas) END SUB SUB CekejVolnouMys DO CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) LOOP UNTIL (INKEY$ = "") AND ((NOT (lb%)) AND (NOT (rb%))) END SUB FUNCTION Confirm (x1, y1, text$, Butt1Text$, Butt2Text$, Butt1Key$, Butt2Key$, QUICKX, QUICKX$) DIM Zaloha(5770), Podklad(5770), Textik(5770), a AS INTEGER, B AS INTEGER DIM c AS INTEGER, d AS INTEGER, e AS INTEGER, f AS INTEGER DIM PodKurzorem(3, 3) AS INTEGER, CeX AS INTEGER, CeY AS INTEGER, AtFirst AS INTEGER CeX = x1 + 240: CeY = y1 + 185 a = CeX: B = CeY GET (x1, y1)-(CeX, CeY), Zaloha IF NOT (QUICKX = -1) THEN CALL VystinujOkno(x1, y1, INT(a), INT(B)) CALL PixWrite("X", x1 + 223, y1 + 5, 4, 0, 8, 10) a = x1 + 28: B = y1 + 140: c = x1 + 153 CALL PixWrite(text$, x1 + 10, y1 + 42, 8, 0, 9, 10) CALL PixWrite(text$, x1 + 11, y1 + 41, 15, 0, 9, 10) CALL PixWrite(Butt1Key$, INT(a) - 1, INT(B) + 1, 11, 0, 9, 10) CALL PixWrite(Butt2Key$, INT(c) - 1, INT(B) + 1, 11, 0, 9, 10) CALL PixWrite(Butt1Text$, INT(a), INT(B), 1, 0, 9, 10) CALL PixWrite(Butt2Text$, INT(c), INT(B), 1, 0, 9, 10) GET (x1, y1)-(CeX, CeY), Textik DEF SEG = VARSEG(Textik(0)) BSAVE QUICKX$, VARPTR(Textik(0)), 5770 * 4 LINE (x1, y1)-(CeX, CeY), 0, BF ELSE DEF SEG = VARSEG(Textik(0)) BLOAD QUICKX$, VARPTR(Textik(0)) END IF a = y1 + 134: B = y1 + 163: c = x1 + 14 d = x1 + 130: e = x1 + 114: f = x1 + 226 PUT (x1, y1), Textik, PSET AtFirst = -1 DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) IF lxmouse% <> xmouse% OR lymouse% <> ymouse% THEN IF NOT (AtFirst) THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) AtFirst = 0 CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorTercik CALL MysUkazKurzor(xmouse%, ymouse%) IF NOT (lb%) THEN IF xmouse% > (x1 + 220) AND ymouse% > y1 AND xmouse% < (x1 + 240) AND ymouse% < (y1 + 20) THEN CALL Tlacitko(x1 + 220, y1 + 5, x1 + 234, y1 + 20, 0) ELSE LINE (x1 + 220, y1 + 5)-(x1 + 234, y1 + 20), 7, B END IF IF ymouse% > a AND ymouse% < B THEN IF xmouse% > c AND xmouse% < e THEN CALL Tlacitko(c, a, e, B, 0) LINE (d, a)-(f, B), 7, B ELSEIF xmouse% > d AND xmouse% < f THEN CALL Tlacitko(d, a, f, B, 0) LINE (c, a)-(e, B), 7, B ELSE LINE (d, a)-(f, B), 7, B LINE (c, a)-(e, B), 7, B END IF ELSE LINE (d, a)-(f, B), 7, B LINE (c, a)-(e, B), 7, B END IF END IF END IF IF lb% THEN IF xmouse% > (x1 + 220) AND ymouse% > y1 THEN IF xmouse% < (x1 + 240) AND ymouse% < (y1 + 20) THEN CALL Tlacitko(x1 + 220, y1 + 5, x1 + 234, y1 + 20, -1) Confirm = 0: EXIT DO END IF END IF IF ymouse% > a AND ymouse% < B THEN IF xmouse% > c AND xmouse% < e THEN CALL Tlacitko(c, a, e, B, -1) Confirm = 1: EXIT DO ELSEIF xmouse% > d AND xmouse% < f THEN CALL Tlacitko(d, a, f, B, -1) Confirm = 2: EXIT DO END IF END IF END IF SELECT CASE LCASE$(CHR$(ABS(GetKey(1)))) CASE CHR$(27): Confirm = 0 CALL Tlacitko(x1 + 220, y1 + 5, x1 + 234, y1 + 20, -1): EXIT DO CASE LCASE$(Butt1Key$): Confirm = 1 CALL Tlacitko(c, a, e, B, -1): EXIT DO CASE LCASE$(Butt2Key$): Confirm = 2 CALL Tlacitko(d, a, f, B, -1): EXIT DO END SELECT LOOP CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Cekej(.17) CALL CekejVolnouMys PUT (x1, y1), Zaloha, PSET END FUNCTION SUB CreateFontFile DIM i AS INTEGER, j AS INTEGER, a AS STRING * 1, k AS INTEGER DIM Numb AS INTEGER, Char AS INTEGER DIM Hexio AS STRING, Hexio1 AS STRING, Hexio2 AS STRING OPEN "$$font$$._m_" FOR BINARY AS #4 RESTORE FontData DO READ Hexio IF Hexio = "XX" THEN EXIT DO j = VAL("&H" + Hexio) IF j = 1 THEN READ Hexio1, Hexio2 Char = VAL("&H" + Hexio1): Numb = VAL("&H" + Hexio2) a = CHR$(Char) FOR k = Numb TO 1 STEP -1 PUT #4, , a NEXT k ELSE a = CHR$(j) PUT #4, , a END IF LOOP CLOSE #4 END SUB FUNCTION DlgBox (Radek1$, Radek2$, Butt1$, Butt2$) DIM PodKurzorem(3, 3) AS INTEGER DIM Zaloha(3820) Pom = 0: x$ = "" GET (150, 200)-(490, 285), Zaloha CALL VystinujOkno(151, 201, 489, 284) CALL PixWrite(Radek1$, 160, 206, 4, 0, 8, 10) CALL PixWrite(Radek2$, 160, 224, 1, 0, 8, 10) CALL PixWrite(Butt1$, 189, 254, 8, 0, 8, 10) CALL PixWrite("<1>", 155, 254, 1, 0, 8, 10) CALL PixWrite(Butt2$, 389, 254, 8, 0, 8, 10) CALL PixWrite("<2>", 355, 254, 1, 0, 8, 10) DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) IF PohybMysi THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorCtverec CALL MysUkazKurzor(xmouse%, ymouse%) END IF IF (ymouse% > 254) AND (ymouse% < 272) THEN IF (xmouse% > 389) AND (xmouse% < 451) THEN '2 but IF lb% THEN Pom = 2 IF PohybMysi THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(385, 250, 455, 276, 0) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorKruznice CALL MysUkazKurzor(xmouse%, ymouse%) END IF ELSE LINE (385, 250)-(455, 276), 7, B END IF IF (xmouse% > 189) AND (xmouse% < 251) THEN '1 but IF lb% THEN Pom = 1 IF PohybMysi THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(185, 250, 255, 276, 0) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorKruznice CALL MysUkazKurzor(xmouse%, ymouse%) END IF ELSE LINE (185, 250)-(255, 276), 7, B END IF ELSE LINE (185, 250)-(255, 276), 7, B LINE (385, 250)-(455, 276), 7, B END IF x$ = INKEY$ LOOP UNTIL (x$ = "1") OR (x$ = "2") OR (Pom > 0) IF x$ <> "" THEN Pom = VAL(x$) DlgBox = Pom CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) SELECT CASE Pom CASE 1: CALL Tlacitko(185, 250, 255, 276, -1) CASE 2: CALL Tlacitko(385, 250, 455, 276, -1) END SELECT Cekej (.17) CALL CekejVolnouMys PUT (150, 200), Zaloha, PSET END FUNCTION SUB DoBufferu (key$) DIM InReg AS Registry InReg.AX = 1280 'AH=5 InReg.CX = ASC(key$) CALL INTERRUPT(&H16, InReg, InReg) END SUB FUNCTION GetColor (Textik$, Barva, Kurzor) DIM w AS INTEGER, h AS INTEGER, ba AS INTEGER DIM xw AS INTEGER, yh AS INTEGER DIM mx AS INTEGER, my AS INTEGER DIM x AS INTEGER, y AS INTEGER DIM xx AS INTEGER, yy AS INTEGER, PohybMysi AS INTEGER DIM lx AS INTEGER, ly AS INTEGER, AtFirst AS INTEGER DIM IsCalled AS INTEGER, MouseIn(15) AS INTEGER h = 2890: w = 170 DIM Okno(h), Zaloha(h) DIM Text0(w), text(w) DIM Ctverec(h), PodKurzorem(3, 3) AS INTEGER h = 278: w = 72: IsCalled = 0: xw = 635 - w: yh = 470 - h '------------------------------------------------------Vykresleni okna GET (olx, oly)-(olx + w + 1, oly + h + 10), Zaloha ' lx = olx + 72: ly = oly + 16 ' LINE (olx, oly)-(lx, ly), 0, B ' LINE (olx, oly)-(lx, ly), 0, BF ' GET (0, 0)-(72, 16), Text0 ' CALL PixWrite(Textik$, 0, 0, 11, 0, 8, 9) ' GET (0, 0)-(72, 16), text ' PUT (0, 0), Text0, PSET ' lx = olx + w: ly = oly + h ' xx = olx + 1: yy = oly + 1 ' LINE (xx, yy)-(lx, ly), 1, BF ' GET (xx, yy)-(lx, ly), Ctverec ' PUT (olx, oly), Zaloha, PSET ' PUT (xx, yy), text, PSET ' PUT (xx, yy), Ctverec, XOR ' '---------------------------------------------------' '------------------------------------------------------Vykresleni tlacitek Tlacitka: ' FOR y = 0 TO 7 ' FOR x = 0 TO 1 ' xx = x * 32 + 7 + olx 'x*2*3+x*26+3 + 4 ' yy = y * 32 + 21 + oly 'y*2*3+y*26+3 + 18' ba = y * 2 + x ' lx = xx + 26: ly = yy + 26 ' LINE (xx, yy)-(lx, ly), ba, BF ' LINE (xx, yy)-(lx, ly), 15, B ' NEXT x ' NEXT y ' IF IsCalled THEN RETURN ' '---------------------------------------------------' IsCalled = -1 AtFirst = -1 DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) IF PohybMysi AND NOT (rb%) THEN IF NOT (AtFirst) THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) AtFirst = 0 CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) SELECT CASE Kurzor CASE 1: RESTORE KurzorKruh CASE 2: RESTORE KurzorKruznice END SELECT CALL MysUkazKurzor(xmouse%, ymouse%) ELSE IF lb% AND (NOT (rb%)) THEN IF ((xmouse% < olx) OR (xmouse% > (olx + w))) OR ((ymouse% < oly) OR (ymouse% > (oly + h))) THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) GetColor = Barva: PUT (olx, oly), Zaloha, PSET: GOTO Ukonci END IF END IF END IF IF rb% THEN IF xmouse% >= xw THEN xmouse% = xw - 1 IF ymouse% >= yh THEN ymouse% = yh - 1 IF MouseDown = 0 THEN MouseDown = -1 CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) END IF ELSE MouseDown = 0 END IF Drag = 0 '------------------------------------------------------Posunovani oknem IF rb% THEN ' IF PohybMysi THEN ' lx = olx + w + 1: ly = oly + h + 10 ' PUT (olx, oly), Zaloha, PSET ' lx = xmouse% + w + 1: ly = ymouse% + h + 10 ' olx = xmouse%: oly = ymouse% ' GET (olx, oly)-(lx, ly), Zaloha ' PUT (olx, oly), text, PSET ' PUT (olx, oly), Ctverec, XOR ' GOSUB Tlacitka ' Drag = -1 ' CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) ' END IF ' END IF ' IF NOT (Drag) THEN ' '-------------------------------------------------------------' FOR y = 0 TO 7 FOR x = 0 TO 1 xx = 32 * x + 7 + olx yy = 32 * y + 21 + oly ba = y * 2 + x mx = xx + 26: my = yy + 26 '------------------------------------------------------Odznaceni barvy IF NOT (MouseIn(ba)) THEN ' FOR i = 1 TO 15 ' IF MouseIn(ba) = -3 THEN ' MouseIn(ba) = 0 ' LINE (xx, yy)-(mx, my), 15, B ' END IF ' NEXT i ' END IF ' '---------------------------------------------------' IF xmouse% >= xx THEN IF ymouse% >= yy THEN IF xmouse% <= mx THEN IF ymouse% <= my THEN '------------------------------------------------------Podsviceni barvy IF NOT (MouseIn(ba)) THEN ' IF NOT (lb% AND rb%) THEN ' CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) ' LINE (xx, yy)-(mx, my), 0, B ' CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) ' FOR i = 0 TO 15 ' MouseIn(i) = MouseIn(i) - 2 ' NEXT i ' MouseIn(ba) = -1 ' '---------------------------------------------------------------' END IF END IF IF lb% THEN '------------------------------------------------------Kliknuti na barvu GetColor = ba ' PUT (olx, oly), Zaloha, PSET ' DO ' CALL MouseStatus(lb%, rb%, xmouse%, ymouse%)' LOOP UNTIL NOT (lb%) ' GOTO Ukonci ' '------------------------------------------------------' END IF END IF END IF END IF END IF NEXT x NEXT y END IF IF INKEY$ = CHR$(27) THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) GetColor = Barva: PUT (olx, oly), Zaloha, PSET: EXIT DO END IF LOOP Ukonci: CALL CekejVolnouMys END FUNCTION FUNCTION GetKey (a) DIM Ky AS STRING, KeyCode AS INTEGER, Hotovo AS INTEGER Ky = "" DO Ky = INKEY$ IF LEN(Ky) = 0 THEN GOTO gkn IF LEN(Ky) > 0 THEN KeyCode = ASC(LEFT$(Ky$, 1)): Hotovo = -1 END IF IF KeyCode = 0 THEN KeyCode = -ASC(MID$(Ky$, 2, 1)): Hotovo = -1 END IF gkn: IF a = 1 THEN EXIT DO LOOP UNTIL Hotovo GetKey = KeyCode END FUNCTION SUB GetKeybFlags DEF SEG = 0 k1 = PEEK(1047) k2 = PEEK(1048) KeyFlags.rShift = ((k1 AND 1) = 1) KeyFlags.lShift = ((k1 AND 2) = 2) KeyFlags.Ctrl = ((k1 AND 4) = 4) KeyFlags.Alt = ((k1 AND 8) = 8) KeyFlags.ScrollOn = ((k1 AND 16) = 16) KeyFlags.NumOn = ((k1 AND 32) = 32) KeyFlags.CapsOn = ((k1 AND 64) = 64) KeyFlags.InsOn = ((k1 AND 128) = 128) KeyFlags.lCtrl = ((k2 AND 1) = 1) KeyFlags.lAlt = ((k2 AND 2) = 2) KeyFlags.SysReq = ((k2 AND 4) = 4) KeyFlags.Pause = ((k2 AND 8) = 8) KeyFlags.ScrollPressed = ((k2 AND 16) = 16) KeyFlags.NumPressed = ((k2 AND 32) = 32) KeyFlags.CapsPressed = ((k2 AND 64) = 64) KeyFlags.InsPressed = ((k2 AND 128) = 128) KeyFlags.Shift = KeyFlags.lShift OR KeyFlags.rShift KeyFlags.rAlt = KeyFlags.Alt AND NOT (KeyFlags.lAlt) KeyFlags.rCtrl = KeyFlags.Ctrl AND NOT (KeyFlags.lCtrl) END SUB SUB Help (x1, y1, QUICK1, QUICK2, QUICK3) REDIM Pozadi(5400), Podklad(4930) DIM a AS INTEGER, B, c AS INTEGER, d DIM HelpTxt(22) AS STRING GET (x1, y1)-(x1 + 239, y1 + 178), Pozadi '------------------------------------------------------------------- IF NOT (QUICK1 = -1) THEN SELECT CASE Jazyk CASE 1: RESTORE HelpDataCz CASE 2: RESTORE HelpDataEn END SELECT FOR i = 0 TO 22: READ HelpTxt(i): NEXT i a = x1 + 5: B = y1 + 17: c = x1 + 239: d = y1 + 178 CALL VystinujOkno(INT(a), B, INT(c), d) a = x1 + 8 B = y1 - 10 CALL PixWrite(HelpTxt(0), 197, 173, 12, 0, 8, 10) CALL PixWrite(HelpTxt(0), 198, 174, 4, 0, 8, 10) CALL PixWrite(HelpTxt(1), 206, 190, 9, 0, 8, 10) CALL PixWrite(HelpTxt(2), 206, 206, 9, 0, 8, 10) CALL PixWrite(HelpTxt(3), 202, 222, 8, 0, 9, 10) CALL PixWrite(HelpTxt(4), 204, 238, 8, 0, 8, 10) CALL PixWrite(HelpTxt(5), 198, 254, 8, 0, 8, 10) CALL PixWrite(HelpTxt(6), 198, 270, 8, 0, 8, 10) CALL PixWrite(HelpTxt(7), 198, 286, 1, 0, 8, 10) CALL PixWrite(HelpTxt(8), 200, 302, 9, 0, 8, 10) GET (x1 + 5, y1 + 17)-(x1 + 239, y1 + 178), Podklad DEF SEG = VARSEG(Podklad(0)) BSAVE "QUICK1.$!$", VARPTR(Podklad(0)), 4930 * 4 ELSE DEF SEG = VARSEG(Podklad(0)) BLOAD "QUICK1.$!$", VARPTR(Podklad(0)) PUT (x1 + 5, y1 + 17), Podklad, PSET END IF DEF SEG CALL WaitForSomething '------------------------------------------------------------------- IF NOT (QUICK3 = -1) THEN a = x1 + 5: B = y1 + 17: c = x1 + 239: d = y1 + 178 CALL VystinujOkno(INT(a), B, INT(c), d) a = x1 + 8 B = y1 - 10 CALL PixWrite(HelpTxt(0), 197, 173, 12, 0, 8, 10) CALL PixWrite(HelpTxt(0), 198, 174, 4, 0, 8, 10) CALL PixWrite(HelpTxt(15), 199, 190, 1, 0, 8, 10) CALL PixWrite(HelpTxt(16), 199, 206, 1, 0, 8, 10) CALL PixWrite(HelpTxt(17), 199, 222, 1, 0, 8, 10) CALL PixWrite(HelpTxt(18), 199, 238, 1, 0, 8, 10) CALL PixWrite(HelpTxt(19), 199, 254, 8, 0, 8, 10) CALL PixWrite(HelpTxt(20), 199, 270, 8, 0, 8, 10) CALL PixWrite(HelpTxt(21), 199, 286, 1, 0, 8, 10) CALL PixWrite(HelpTxt(22), 199, 302, 4, 0, 8, 10) GET (x1 + 5, y1 + 17)-(x1 + 239, y1 + 178), Podklad DEF SEG = VARSEG(Podklad(0)) BSAVE "QUICK3.$!$", VARPTR(Podklad(0)), 4930 * 4 ELSE DEF SEG = VARSEG(Podklad(0)) BLOAD "QUICK3.$!$", VARPTR(Podklad(0)) PUT (x1 + 5, y1 + 17), Podklad, PSET END IF DEF SEG CALL WaitForSomething '------------------------------------------------------------------- IF NOT (QUICK2 = -1) THEN a = x1 + 5: B = y1 + 17: c = x1 + 239: d = y1 + 178 CALL VystinujOkno(INT(a), B, INT(c), d) a = x1 + 46: B = y1 + 7 CALL PixWrite(HelpTxt(9), 199, 173, 12, 0, 8, 10) CALL PixWrite(HelpTxt(9), 198, 174, 4, 0, 8, 10) CALL PixWrite(HelpTxt(10), 203, 200, 1, 0, 8, 10) CALL PixWrite(HelpTxt(12), 203, 220, 1, 0, 8, 10) CALL PixWrite(HelpTxt(11), 205, 240, 4, 0, 8, 10) CALL PixWrite(HelpTxt(13), 202, 280, 8, 0, 8, 10) CALL PixWrite(HelpTxt(14), 198, 300, 8, 0, 8, 10) GET (x1 + 5, y1 + 17)-(x1 + 239, y1 + 178), Podklad DEF SEG = VARSEG(Podklad(0)) BSAVE "QUICK2.$!$", VARPTR(Podklad(0)), 4930 * 4 ELSE DEF SEG = VARSEG(Podklad(0)) BLOAD "QUICK2.$!$", VARPTR(Podklad(0)) PUT (x1 + 5, y1 + 17), Podklad, PSET END IF DEF SEG CALL WaitForSomething '------------------------------------------------------------------- PUT (x1, y1), Pozadi, PSET CALL CekejVolnouMys END SUB FUNCTION Klavesnicka (ff$, Pom1, Pom2) DIM Zaloha(7110) DIM PodKurzorem(3, 3) AS INTEGER, PohybMysi AS INTEGER DIM Klavesy(40) AS STRING * 1, x AS INTEGER, y AS INTEGER DIM GrpX AS INTEGER, GrpY AS INTEGER, Nadpis AS STRING DIM Ky AS INTEGER DIM ToolTip(3) AS STRING Klavesnicka = 0 SELECT CASE Jazyk CASE 1: RESTORE MiniKeybDataCz CASE 2: RESTORE MiniKeybDataEn END SELECT READ Nadpis FOR i = 0 TO 3 READ ToolTip(i) NEXT i '----------------------------------------------------------------- Okno x = 15: y = 13 ' GET (130, 155)-(485, 312), Zaloha ' CALL VystinujOkno(130, 155, 485, 312) ' COLOR 11 ' ' CALL PixWrite(Nadpis, 210, 160, 1, 0, 9, 10) ' '-----------------------------------------------------------------' '----------------------------------------------------------Standartni klavesy RESTORE MiniKeybdata ' FOR i = 0 TO 37 ' IF i = 26 THEN COLOR 10 ' READ Klavesy(i): x = x + 4 ' IF x > 60 THEN ' x = 19: y = y + 2 ' END IF ' GrpX = x * 8 - 5: GrpY = y * 16 - 10 ' CIRCLE (GrpX, GrpY), 9, 8: PAINT (GrpX, GrpY), 0, 8 ' LOCATE y, x: PRINT Klavesy(i) ' CIRCLE (GrpX, GrpY), 10, 8, 2.7, 5.7 ' CIRCLE (GrpX, GrpY), 10, 15, 5.7, 2.7 ' NEXT i ' '---------------------------------------------------------------------------' '-------------------------------------------------------Enter, Backspace, Esc COLOR 12 ' x = x + 4: GrpX = x * 8 - 5: GrpY = y * 16 - 10: CIRCLE (GrpX, GrpY), 9, 8 ' PAINT (GrpX, GrpY), 0, 8: LOCATE y, x: PRINT CHR$(17): Klavesy(38) = CHR$(8)' CIRCLE (GrpX, GrpY), 10, 8, 2.7, 5.7: CIRCLE (GrpX, GrpY), 10, 15, 5.7, 2.7 ' ' x = x + 4: GrpX = x * 8 - 5: GrpY = y * 16 - 10: CIRCLE (GrpX, GrpY), 9, 8 ' PAINT (GrpX, GrpY), 0, 8: LOCATE y, x: PRINT CHR$(1): Klavesy(39) = CHR$(13)' CIRCLE (GrpX, GrpY), 10, 8, 2.7, 5.7: CIRCLE (GrpX, GrpY), 10, 15, 5.7, 2.7 ' ' x = x + 4: GrpX = x * 8 - 5: GrpY = y * 16 - 10: CIRCLE (GrpX, GrpY), 9, 8 ' PAINT (GrpX, GrpY), 0, 8: LOCATE y, x: PRINT "X": Klavesy(40) = CHR$(27) ' CIRCLE (GrpX, GrpY), 10, 8, 2.7, 5.7: CIRCLE (GrpX, GrpY), 10, 15, 5.7, 2.7 ' '----------------------------------------------------------------------------' CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) lxmouse% = xmouse%: lymouse% = ymouse% CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) '===========================================================================_ DO '' COLOR 12: LOCATE 1, Pom1: PRINT ff$; SPC(Pom2 - LEN(ff$)); '' Ky = GetKey(1) '' IF Ky <> 0 THEN '' SELECT CASE Ky '' CASE 8: IF ff$ <> "" THEN ff$ = MID$(ff$, 1, LEN(ff$) - 1) '' CASE 27: Klavesnicka = -1: GOTO KonecKlavesnicka '' CASE 13: GOTO KonecKlavesnicka '' CASE 9: IF LEN(ff$) < Pom2 THEN ff$ = ff$ + " " '' CASE ELSE: IF LEN(ff$) < Pom2 THEN ff$ = ff$ + CHR$(ABS(Ky)) '' END SELECT '' END IF '' '' lxmouse% = xmouse%: lymouse% = ymouse% '' CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) '' PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) '' IF PohybMysi THEN '' CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) '' CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) '' RESTORE KurzorOpacnaSipka: CALL MysUkazKurzor(xmouse%, ymouse%) '' END IF '' x = 15: y = 13 '' FOR i = 0 TO 40 '' x = x + 4 '' IF x > 60 THEN '' x = 19: y = y + 2 '' END IF '' GrpX = x * 8 - 5: GrpY = y * 16 - 10 '' IF (xmouse% > GrpX - 10) AND (xmouse% < (GrpX + 8)) THEN '' IF (ymouse% > GrpY - 10) AND (ymouse% < (GrpY + 16)) THEN '' CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) '' IF lb% THEN '' CIRCLE (GrpX, GrpY), 11, 15, 2.7, 5.7 '' CIRCLE (GrpX, GrpY), 11, 8, 5.7, 2.7 '' CIRCLE (GrpX, GrpY), 10, 15, 2.7, 5.7 '' CIRCLE (GrpX, GrpY), 10, 8, 5.7, 2.7 '' CALL DoBufferu(Klavesy(i)) '' DO: CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) '' LOOP UNTIL NOT (lb%) '' ELSEIF PohybMysi THEN '' CIRCLE (GrpX, GrpY), 11, 8, 2.7, 5.7 '' CIRCLE (GrpX, GrpY), 11, 15, 5.7, 2.7 '' CIRCLE (GrpX, GrpY), 10, 8, 2.7, 5.7 '' CIRCLE (GrpX, GrpY), 10, 15, 5.7, 2.7 '' SELECT CASE i '' CASE 38: CALL PixWrite(ToolTip(1), 392, 286, 1, 7, 8, 8) '' CASE 39: CALL PixWrite(ToolTip(2), 392, 286, 0, 7, 8, 8) '' CASE 40: CALL PixWrite(ToolTip(3), 392, 286, 4, 7, 8, 8) '' CASE ELSE: CALL PixWrite(ToolTip(0), 392, 286, 8, 7, 8, 8) '' END SELECT '' END IF '' CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) '' RESTORE KurzorKruh: CALL MysUkazKurzor(xmouse%, ymouse%) '' ELSE '' CIRCLE (GrpX, GrpY), 11, 7 '' END IF '' ELSE '' CIRCLE (GrpX, GrpY), 11, 7 '' END IF '' NEXT i '' LOOP '' '==========================================================================='' KonecKlavesnicka: CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) PUT (130, 155), Zaloha, PSET END FUNCTION FUNCTION Language DIM PodKurzorem(3, 3) AS INTEGER DIM Zaloha(2236), Pom, Pom1 Pom = 0 GET (220, 200)-(420, 285), Zaloha CALL VystinujOkno(223, 200, 417, 285) LINE (342, 254)-(401, 272), 0, BF: LINE (239, 254)-(297, 272), 0, BF CALL PixWrite("Jazyk / Language", 261, 209, 8, 0, 8, 10) CALL PixWrite("Jazyk / Language", 260, 210, 15, 0, 8, 10) COLOR 15: LOCATE 17, 31: PRINT " Cesky ": LOCATE 17, 44: PRINT "English" COLOR 12: LOCATE 17, 31: PRINT " C": LOCATE 17, 44: PRINT "E" DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) IF PohybMysi THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorCtverec CALL MysUkazKurzor(xmouse%, ymouse%) END IF IF (ymouse% > 250) AND (ymouse% < 276) THEN IF (xmouse% > 235) AND (xmouse% < 301) THEN IF lb% THEN Pom = 1 IF PohybMysi THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(235, 250, 301, 276, 0) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorCz CALL MysUkazKurzor(xmouse%, ymouse%) END IF ELSE LINE (235, 250)-(301, 276), 7, B END IF IF (xmouse% > 338) AND (xmouse% < 405) THEN IF lb% THEN Pom = 2 IF PohybMysi THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(338, 250, 405, 276, 0) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorEn CALL MysUkazKurzor(xmouse%, ymouse%) END IF ELSE LINE (338, 250)-(405, 276), 7, B END IF ELSE LINE (338, 250)-(405, 276), 7, B LINE (235, 250)-(301, 276), 7, B END IF SELECT CASE LCASE$(INKEY$) CASE "c": Pom = 1 CASE "e": Pom = 2 END SELECT LOOP UNTIL Pom > 0 CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) LINE (338, 250)-(405, 276), 7, B: LINE (235, 250)-(301, 276), 7, B SELECT CASE Pom CASE 1: CALL Tlacitko(235, 250, 301, 276, -1) CASE 2: CALL Tlacitko(338, 250, 405, 276, -1) END SELECT CALL Cekej(.17) CALL CekejVolnouMys PUT (220, 200), Zaloha, PSET Language = Pom END FUNCTION FUNCTION Menu (xmouse%, ymouse%, QUICK6) DIM ZalohaX AS INTEGER, ZalohaY AS INTEGER DIM Nabidka(1 TO 18) AS STRING * 20, Radek AS INTEGER, PodKurzorem(3, 3) AS INTEGER DIM Empty AS STRING * 20, i AS INTEGER, y AS INTEGER, AtFirst AS INTEGER DIM MenuX AS INTEGER, MenuY AS INTEGER, MaxX AS INTEGER, MaxY AS INTEGER DIM Hodnota(1 TO 18) AS INTEGER, Pom AS INTEGER, Zaloha(4200), Obrazek(4200) DIM VObjektu AS INTEGER, MysMove AS INTEGER ZalohaX = xmouse%: ZalohaY = ymouse% IF xmouse% >= 480 THEN MenuX = 480 ELSE MenuX = xmouse% IF ymouse% >= 270 THEN MenuY = 270 ELSE MenuY = ymouse% MaxX = MenuX + 159: MaxY = MenuY + 209 GET (MenuX, MenuY)-(MaxX, MaxY), Zaloha SELECT CASE Jazyk CASE 1: RESTORE MenuDataCz CASE 2: RESTORE MenuDataEn END SELECT FOR Radek = 1 TO 18 READ Nabidka(Radek), Hodnota(Radek) NEXT Radek IF NOT (QUICK6) THEN LINE (MenuX, MenuY)-(MaxX, MaxY), 0, BF CALL VystinujOkno(MenuX + 1, MenuY + 1, MaxX - 1, MaxY - 1) LINE (MenuX + 4, MenuY + 4)-(MenuX + 155, MenuY + 205), 7, BF FOR i = 1 TO 18 IF Hodnota(i) THEN CALL PixWrite(Nabidka(i), MenuX + 11, MenuY + y + 1, 1, 0, 8, 10): y = y + 15 ELSE Pom = MenuY + y + 5: LINE (MenuX + 10, Pom)-(MenuX + 140, Pom), 8: y = y + 4 END IF NEXT i GET (MenuX, MenuY)-(MaxX, MaxY), Obrazek DEF SEG = VARSEG(Obrazek(0)) BSAVE "QUICK6.$!$", VARPTR(Obrazek(0)), 4200 * 4 ELSE DEF SEG = VARSEG(Obrazek(0)) BLOAD "QUICK6.$!$", VARPTR(Obrazek(0)) PUT (MenuX, MenuY), Obrazek, PSET END IF AtFirst = -1 Menu = 0 DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) VObjektu = ((xmouse% >= MenuX) AND (xmouse% <= MaxX) AND (ymouse% >= MenuY) AND (ymouse% <= MaxY)) MysMove = (lxmouse% <> xmouse%) OR (lymouse% <> ymouse%) IF VObjektu THEN y = 0: Radek = 0 FOR i = 1 TO 18 IF Hodnota(i) THEN Pom = MenuY + y: Radek = Radek + 1 IF (ymouse% >= (Pom + 1)) AND (ymouse% < (Pom + 15)) THEN Menu = Radek IF lb% AND (NOT (rb%)) THEN GOTO KonecMenu y = y + 15 ELSE y = y + 15 END IF ELSE y = y + 4 END IF NEXT i Menu = 0 'kdyz odstranim ..not rb.. tak je tam chyba ELSEIF (lb% AND NOT (rb% OR MysMove)) THEN GOTO KonecMenu END IF IF MysMove THEN IF NOT (AtFirst) THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) AtFirst = 0 CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorTercik IF VObjektu THEN y = 0 FOR i = 1 TO 18 IF Hodnota(i) THEN Pom = MenuY + y: Radek = Radek + 1 IF (ymouse% >= (Pom + 1)) AND (ymouse% < (Pom + 15)) THEN IF MysMove THEN CIRCLE (MenuX + 7, Pom + 9), 3, 8: y = y + 15 CIRCLE (MenuX + 7, Pom + 9), 2, 8 PAINT (MenuX + 7, Pom + 9), 0, 8 END IF ELSE IF MysMove THEN CIRCLE (MenuX + 7, Pom + 9), 3, 7: y = y + 15 CIRCLE (MenuX + 7, Pom + 9), 2, 7 PAINT (MenuX + 7, Pom + 9), 7, 7 END IF END IF ELSE y = y + 4 END IF NEXT i ELSE CALL MysUkazKurzor(xmouse%, ymouse%) END IF END IF LOOP KonecMenu: CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL CekejVolnouMys PUT (MenuX, MenuY), Zaloha, PSET xmouse% = ZalohaX: ymouse% = ZalohaY END FUNCTION SUB MouseDriver (AX%, BX%, CX%, DX%) DEF SEG = VARSEG(mouse$) mouse% = SADD(mouse$) CALL Absolute(AX%, BX%, CX%, DX%, mouse%) END SUB SUB MouseHide AX% = 2 MouseDriver AX%, 0, 0, 0 END SUB FUNCTION MouseInit% AX% = 0 MouseDriver AX%, 0, 0, 0 MouseInit% = AX% END FUNCTION SUB MouseStatus (lb%, rb%, xmouse%, ymouse%) AX% = 3 MouseDriver AX%, BX%, CX%, DX% lb% = ((BX% AND 1) <> 0) rb% = ((BX% AND 2) <> 0) xmouse% = CX% ymouse% = DX% END SUB SUB MsgBox (Radek1$, Radek2$, Butt$) DIM PodKurzorem(3, 3) AS INTEGER DIM Zaloha(2236) Pom = 0 GET (220, 200)-(420, 285), Zaloha CALL VystinujOkno(223, 200, 417, 285) CALL PixWrite(Radek1$, 237, 206, 1, 0, 8, 10) CALL PixWrite(Radek2$, 237, 224, 1, 0, 8, 10) CALL PixWrite(Butt$, 289, 254, 8, 0, 8, 10) DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) IF PohybMysi THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorCtverec CALL MysUkazKurzor(xmouse%, ymouse%) END IF IF (ymouse% > 254) AND (ymouse% < 272) THEN IF (xmouse% > 289) AND (xmouse% < 351) THEN IF lb% THEN Pom = 1 IF PohybMysi THEN CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(285, 250, 355, 276, 0) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorKruznice CALL MysUkazKurzor(xmouse%, ymouse%) END IF ELSE LINE (285, 250)-(355, 276), 7, B END IF ELSE LINE (285, 250)-(355, 276), 7, B END IF x$ = INKEY$ LOOP UNTIL (x$ = " ") OR (x$ = CHR$(27)) OR (Pom > 0) CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL Tlacitko(285, 250, 355, 276, -1) Cekej (.17) CALL CekejVolnouMys PUT (220, 200), Zaloha, PSET END SUB SUB MysNactiPozadi (x%, y%, PodKurzorem() AS INTEGER) DIM u AS INTEGER, v AS INTEGER, RY AS INTEGER FOR u = 0 TO 3 RY = y% + u FOR v = 0 TO 3 PodKurzorem(v, u) = POINT(x% + v, RY) NEXT v NEXT u END SUB SUB MysUkazKurzor (x%, y%) DIM u AS INTEGER, v AS INTEGER, RY AS INTEGER, RX AS INTEGER FOR u = 0 TO 3 RY = y% + u FOR v = 0 TO 3 RX = x% + v READ ba IF ba > 0 THEN PSET (RX, RY), POINT(RX, RY) XOR ba NEXT v NEXT u END SUB SUB MysVratPozadi (x%, y%, PodKurzorem() AS INTEGER) DIM u AS INTEGER, v AS INTEGER, RY AS INTEGER FOR u = 0 TO 3 RY = y% + u FOR v = 0 TO 3 PSET (x% + v, RY), PodKurzorem(v, u) NEXT v NEXT u END SUB SUB Nakresli (File$) DIM Rec AS Rec CLS SCREEN 12 OPEN File$ FOR BINARY AS #1 LEN = LEN(Rec) max = LOF(1) / LEN(Rec) FOR i = 1 TO max GET #1, , Rec SELECT CASE Rec.Ukon CASE "L": LINE (Rec.x, Rec.y)-(Rec.lx, Rec.ly), Rec.c CASE "#": PAINT (Rec.x, Rec.y), Rec.lx, Rec.ly END SELECT NEXT i CLOSE #1 END SUB FUNCTION PutLine (x%, y%, Barva) DIM PodKurzorem(3, 3) AS INTEGER DIM Zaloha(3, 3) AS INTEGER, ZalX, ZalY DIM LockX AS INTEGER, LockY AS INTEGER CALL MysNactiPozadi(x%, y%, Zaloha()) RESTORE KurzorStinovanaSipka CALL MysUkazKurzor(x%, y%) CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) IF LockX THEN xmouse% = lxmouse% IF LockY THEN ymouse% = lymouse% PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) SELECT CASE GetKey(1) CASE 27: GOTO KonecPutLine CASE 88, 120: LockX = NOT (LockX) CASE 89, 121: LockY = NOT (LockY) END SELECT IF lb% THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL MysVratPozadi(x%, y%, Zaloha()) LINE (x%, y%)-(xmouse%, ymouse%), Barva Buffer.Ukon = "L" Buffer.x = xmouse% Buffer.y = ymouse% Buffer.lx = x% Buffer.ly = y% Buffer.c = Barva CALL CekejVolnouMys PutLine = -1 EXIT FUNCTION ELSEIF rb% THEN GOTO KonecPutLine END IF IF PohybMysi THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorStinovanaSipka CALL MysUkazKurzor(xmouse%, ymouse%) END IF LOOP KonecPutLine: CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysVratPozadi(xmouse%, ymouse%, PodKurzorem()) CALL MysVratPozadi(x%, y%, Zaloha()) DO CALL MouseStatus(lb%, rb%, x%, y%) LOOP UNTIL (INKEY$ = "") AND ((NOT (lb%)) AND (NOT (rb%))) PutLine = 0 END FUNCTION SUB SaveBMP (File$) DIM Buf AS STRING * 1, i AS DOUBLE, col AS INTEGER, col1 AS INTEGER DIM cool AS INTEGER, BMPBuffer AS STRING DIM x AS INTEGER, y AS INTEGER DIM x1 AS INTEGER, y1 AS INTEGER, x2 AS INTEGER, y2 AS INTEGER DIM Pom AS INTEGER, Pom1 AS INTEGER, Pom2 AS INTEGER DIM Zaloha(700), Policko(50) x1 = 150: y1 = 460: x2 = 450: y2 = 475: Pom1 = x1 + 11: Pom2 = y1 + 2 GET (x1, y1)-(x2, y2), Zaloha LINE (x1 + 2, y1 + 2)-(x1 + 4, y1 + 13), 15, BF GET (x1 + 2, y1 + 2)-(x1 + 4, y1 + 13), Policko LINE (x1, y1)-(x2, y2), 7, BF PUT (x1, y1), Zaloha, PSET BMPBuffer = "" OPEN File$ FOR BINARY AS #5 RESTORE BitmapData FOR i = 1 TO 118 READ a BMPBuffer = BMPBuffer + CHR$(a) NEXT PUT #5, , BMPBuffer BMPBuffer = "" x = 2: y = 482 DO col = POINT(x, y) IF col < 0 THEN col = 0 col1 = POINT(x - 1, y) IF col1 < 0 THEN col1 = 0 col1 = col1 * 16 cool = col OR col1 IF x >= 640 THEN x = 2: y = y - 1 PUT #5, , BMPBuffer BMPBuffer = "" IF y <= 0 THEN EXIT DO 'StatusBar ELSEIF (y <= 459) THEN '*********************************** IF y = 459 THEN ' LINE (x1, y1)-(x2, y2), 7, BF ' CALL PixWrite("Status...", x1 + 100, y1 + 0, 0, 0, 10, 9) ' END IF ' Pom = y \ 5 ' IF ((y / 5) = Pom) THEN ' PUT (Pom1 + Pom * 3, Pom2), Policko, XOR ' END IF ' END IF '***********************************' ELSE x = x + 2 END IF BMPBuffer = BMPBuffer + CHR$(cool) LOOP CLOSE #5 PUT (x1, y1), Zaloha, PSET BEEP END SUB SUB Tlacitko (x%, y%, ex%, ey%, OnOff) DIM c1, c2 IF OnOff = 0 THEN c1 = 8: c2 = 15 ELSE c1 = 15: c2 = 8 END IF LINE (x%, y%)-(x%, ey%), c1, B LINE (x%, ey%)-(ex%, ey%), c1, B LINE (ex%, y%)-(ex%, ey%), c2, B LINE (ex%, y%)-(x%, y%), c2, B END SUB FUNCTION Truncate (File$, File2$, Ok, Txt() AS STRING) DIM Zaloha(2236) DIM PodKurzorem(3, 3) AS INTEGER, PohybMysi AS INTEGER DIM OdTahu AS DOUBLE, DoTahu AS DOUBLE DIM Ky AS INTEGER, Index AS INTEGER, Rec AS Rec DIM Labels(3) AS STRING SELECT CASE Jazyk CASE 1: RESTORE TruncateDataCz CASE 2: RESTORE TruncateDataEn END SELECT FOR i = 0 TO 3: READ Labels(i): NEXT i GET (220, 200)-(420, 285), Zaloha CALL VystinujOkno(223, 200, 417, 285) CALL PixWrite(Labels(0), 239, 204, 8, 0, 8, 10) CALL PixWrite(Labels(0), 240, 203, 15, 0, 8, 10) CALL PixWrite(Labels(1), 345, 224, 1, 0, 8, 10) CALL PixWrite(Labels(2), 345, 240, 1, 0, 8, 10) CALL PixWrite(Labels(3), 345, 256, 1, 0, 8, 10) LINE (238, 224)-(340, 271), 0, BF LINE (237, 223)-(341, 272), 8, B IF Ok = 0 THEN Txt(0) = "1": Txt(1) = "1": Txt(2) = "ABCD.VEC" END IF Tr: DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) IF PohybMysi THEN CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) CALL MysNactiPozadi(xmouse%, ymouse%, PodKurzorem()) RESTORE KurzorKruh: CALL MysUkazKurzor(xmouse%, ymouse%) END IF IF (xmouse% > 237) AND (xmouse% < 403) AND (ymouse% > 205) AND (ymouse% < 221) THEN IF lb% THEN GOTO Uloz IF PohybMysi THEN CALL Tlacitko(237, 205, 403, 220, 0) END IF ELSE LINE (237, 205)-(403, 220), 7, B END IF IF lb% THEN IF ((xmouse% < 220) OR (xmouse% > 420)) OR ((ymouse% < 200) OR (ymouse% > 285)) THEN Truncate = -1: GOTO KonecTruncate END IF IF (xmouse% > 238) AND (xmouse% < 340) THEN IF (ymouse% > 224) AND (ymouse% < 240) THEN Index = 0 ELSEIF (ymouse% > 240) AND (ymouse% < 256) THEN Index = 1 ELSEIF (ymouse% > 256) AND (ymouse% < 272) THEN Index = 2 END IF END IF END IF Ky = GetKey(1) IF Ky <> 0 THEN SELECT CASE Ky CASE 8: IF Txt(Index) <> "" THEN Txt(Index) = MID$(Txt(Index), 1, LEN(Txt(Index)) - 1) CASE 27: Truncate = -1: GOTO KonecTruncate CASE 13: GOTO Uloz CASE 9, -80: Index = Index + 1: IF Index > 2 THEN Index = 0 CASE -72: Index = Index - 1: IF Index < 0 THEN Index = 2 CASE ELSE: IF LEN(Txt(Index)) < 12 THEN Txt(Index) = Txt(Index) + CHR$(ABS(Ky)) END SELECT END IF IF Index = 0 THEN COLOR 12 ELSE COLOR 8 LOCATE 15, 31: PRINT Txt(0); SPACE$(12 - LEN(Txt(0))) IF Index = 1 THEN COLOR 12 ELSE COLOR 8 LOCATE 16, 31: PRINT Txt(1); SPACE$(12 - LEN(Txt(1))) IF Index = 2 THEN COLOR 12 ELSE COLOR 8 LOCATE 17, 31: PRINT Txt(2); SPACE$(12 - LEN(Txt(2))) RESTORE KurzorKruh: CALL MysUkazKurzor(xmouse%, ymouse%) IF Ok THEN GOTO Uloz LOOP Uloz: CALL Tlacitko(237, 205, 403, 220, -1) File2$ = Txt(2) IF Ok = 0 THEN GOTO KonecTruncate OdTahu = VAL(Txt(0)): DoTahu = VAL(Txt(1)) IF DoTahu < OdTahu THEN OdTahu = OdTahu + DoTahu DoTahu = OdTahu - DoTahu OdTahu = OdTahu - DoTahu END IF OPEN File$ FOR BINARY AS #1 IF OdTahu < 1 THEN OdTahu = 1 IF DoTahu > (LOF(1) / 11) THEN DoTahu = (LOF(1) / 11) OPEN File2$ FOR BINARY AS #2 SEEK #1, OdTahu * 11 - 10 FOR i = OdTahu TO DoTahu GET #1, , Rec PUT #2, , Rec NEXT i CLOSE #1 CLOSE #2 KonecTruncate: CALL CekejVolnouMys CALL MysVratPozadi(lxmouse%, lymouse%, PodKurzorem()) PUT (220, 200), Zaloha, PSET END FUNCTION SUB UkazBarvy (x1!, y1!, c, B, a$, B$) DIM PodKurzorem(3, 3) AS INTEGER DIM Zaloha(1350) AS INTEGER DIM pX AS INTEGER, pY AS INTEGER, pX2 AS INTEGER, pY2 AS INTEGER DIM PohybMysi IF x1 > 535 THEN pX = 535 ELSE pX = x1 END IF IF y1 > 425 THEN pY = 425 ELSE pY = y1 END IF pX2 = pX + 100: pY2 = pY + 50 GET (pX, pY)-(pX2, pY2), Zaloha LINE (pX, pY)-(pX2, pY2), B, BF LINE (pX + 15, pY + 15)-(pX2 - 15, pY2 - 15), c, BF LINE (pX + 15, pY + 15)-(pX2 - 15, pY2 - 15), 0, B CALL PixWrite(a$, pX + 15, INT(pY), B XOR 15, 0, 8, 10) CALL PixWrite(B$, pX + 15, pY + 17, c XOR 15, 0, 8, 10) CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) DO lxmouse% = xmouse%: lymouse% = ymouse% CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) PohybMysi = ((lxmouse% <> xmouse%) OR (lymouse% <> ymouse%)) LOOP UNTIL (NOT (lb% OR rb%) AND PohybMysi) PUT (pX, pY), Zaloha, PSET END SUB SUB VystinujOkno (x1, y1, x2, y2) LINE (x1, y1)-(x2, y2), 0, BF LINE (x1, y1)-(x2, y2), 8, B: LINE (x1 + 5, y1 + 4)-(x2 - 5, y2 - 4), 8, B LINE (x1, y1)-(x1 + 5, y1 + 4), 8: LINE (x2, y2)-(x2 - 5, y2 - 4), 8 PAINT (x1 + 2, y1 + 4), 8, 8: PAINT (x2 - 2, y2 - 4), 15, 8 LINE (x1 + 5, y1 + 4)-(x2 - 5, y2 - 4), 7, BF END SUB SUB WaitForSomething DO CALL MouseStatus(lb%, rb%, xmouse%, ymouse%) IF lb% OR rb% THEN CALL CekejVolnouMys EXIT DO END IF LOOP UNTIL INKEY$ <> "" END SUB