INFORMATION

Hello. It's been a long time. I rewrote my experimental operating system's kernel for UEFI. I am still working on the upper layers. I put it on hold because of time issues and not to hurry. (27.08.2022)

Hello,

I developed this project a long time ago and it was designed it for Turkish language. But I would like to talk about it in English and I am thinking of recompiling this project for English language in a free time. This project is a Win32 compiler and a development environment at the same time. I developed it from scratch and no compiler, linker, assembler, library or some third party was used. I created the structure and the working principle according to my own philosophy. So, it is a unique project, completely.

My aim was not to develop a new language, product, etc. There is no need either. I just wanted to create an experimental project for academic reasons.

Click here to download.


I wrote the project in assembly language, completely. The project size is 53 kb and the default compiled exe size is 3 kb. The file size expands according to the code you write. 

You can configure the form components as you like in the development environment. Expand, hide, etc. I also recorded these in my own way and read them. There is no resource in the compiled exe.

Usage 

I added 5 basic components for the interface.

Button, combobox, edit, listbox ve static. 

You can add these components to the form by clicking the buttons on the top, you can adjust properties on the right screen. You can add events, as well.

In the lower part, there is an information screen. You can see incorrect lines of code and status from there.

The code screen and the form stand in back-to-back. You can easily switch using the buttons at the top.

And finally you can compile and run with the buttons on the top right.

 

You can find the compiled executable file in the project folder.

Programming Language

Turkish characters can be used in the programming language.

Defining Variables

There are two types of variables. 

number(sayı) and character(karakter)

sayı: 
sayı is an integer data type and it can store a number in the range −(2^31) to 2^31-1

Usage: 

sayı abc 
sayı abc=234


karakter: 
You can store character arrays in the karakter data type. 

Usage: 

karakter[5] abc

 

karakter[5] abc=asd

We defined abc and initialized it with "asd". 


We use variables by exclamation(!) symbol.

!abc=4 

!abc=!diğerdeğişken

and

You can make calculations. 

Usage: 

!abc=!abc+1 
!abc=1+3*4/2 
!abc=!diğerdeğişken+2*3


and also you can assign a string to karakter data type, as well.

!abc=yenistring

But be careful not to exceed the defined size. 


Negative Numbers:
 

We express negative numbers by putting an 'e' in front of the number. 

Usage: 

!abc=e2


e2 = -2 


The components; 

Text assignment feature

Usage: 

button1.yazı=deneme 
button1.yazı=!değişkenadı 
edit1.yazı=firex 
edit1.yazı=!değişkenadı


Position adjustment

button1.pozisyon(24,43) 
button1.pozisyon(!x,!y)


Size adjustment

button1.boyut(50,100) 
button1.boyut(!genişlik,!yükseklik)


Enable/Disabled 

button1.aktif 
button1.pasif


Show/Hide 

button1.göster 
button1.gösterme


Add an element to the listbox

listbox1.lbekle=elemanyazı 
listbox1.lbekle=!eklenen


Add an element to the combobox

combobox1.cbekle=elemanyazı 
combobox1.cbekle=!eklenen


Delete an element from the listbox

listbox1.lbsil=1

It deletes the 1. (first) element.


Delete an element from the combobox

combobox1.cbsil=1


Other functions 

Close: 

Usage: 

kapat


and

Message Box: 

Usage: 

mesajkutusu(başlık,deneme) 
mesajkutusu(!başlık,!yazı) 
mesajkutusu(deneme,!yazı)


Events

When the program starts: 

Usage: 

programaçılırken 
mesajkutusu(test,deneme) 
olayson

 

olayson

All events end with the "olayson" tag. 

When the program closes: 

Usage: 

programkapanırken 
mesajkutusu(test,deneme) 
olayson


On Click: 

Usage: 

tıklayınca 

button1 
kapat 
olayson 

button2 
mesajkutusu(deneme,deneme) 
olayson 

olayson


Usage: 

button1 
kapat 
olayson


When a component is selected: 

Usage: 

seçildiğinde 

combobox1 
kapat 
olayson 

olayson


When a component is changed:
 

Kullanım: 

değiştiğinde 

edit1 
kapat 
olayson 


edit2 
mesajkutusu(deneme,deneme) 
olayson 

olayson


When the listbox is selected:
 

Usage: 

lbseçildiğinde 
Listbox1 
kapat 
olayson 
olayson


When the listbox selection is change: 

Usage: 

lbseçimdeğişim 
Listbox1 
kapat 
olayson 
olayson


Conditionals: 

You can compare variables, numbers, variable-numbers, etc...

>, <, >=, <=, = 


You can use these operators for comparison.

Comparisons can be use nested.

Usage: 

şart(2<!abc) 
mesajkutusu(deneme,deneme) 

şartson


We use this tag for ending the comparison

şartson


Loop: 

Usage: 

döngü(!sayi<15) 
mesajkutusu(deneme,test) 
!sayi=!sayi+1 
döngüson

You can use nested loops, as well.


Functions: 

You can define your functions. 

Usage: 

fonksiyon abc 
!a=!a*2 
!b=2+3+!a 
fonkson


We use this tag for ending the function

fonkson


We call the function this way.

çağır fonksiyonismi 


Usage: 

fonksiyon abc 
!a=!a*2 
!b=2+3+!a 
fonkson 

... 

çağır abc


Error Messages 

"Değişken bloğu bulunamadı" (Variable block could not be found)
"Kod bloğu bulunamadı"  (Code block could not be found)
"Kod bloğu kapatılmadı"  (Code block not closed)


The most basic program block

değişkenler 
kodlar 
son


Variables block must take the first place.

değişkenler


"Bileşen bulunamadı." (Component could not be found), you must add the component you defined in the code.


"Kapanmayan blok bulunmakta" There is an unclosed block. You must close a component, loop or event, etc...

The programming language is processed line by line. Do not use unnecessary spaces in a single line.

Thanks...

 

Examples

Program1: 
At first, place two buttons on the form. 

Code: 

değişkenler 
karakter[7] abc=deneme 
karakter[5] asd=test 
kodlar 

tıklayınca 
button1 
mesajkutusu(!abc,!asd) 
olayson 
button2 
kapat 
olayson 
olayson 

son 


Program2: 
Place one button on the form. 

Code: 

değişkenler 
sayı !x=0 
sayı !y=0 
kodlar 

tıklayınca 
button1 

döngü(!x<200) 
button1.pozisyon(!x,!y) 
!x=!x+1 
!y=!y+1 
döngüson 

olayson 
olayson 

son 


Program3: 
Place one button and one listbox on the form.

Code: 

değişkenler 
sayı x=0 
karakter[3] eleman=ok 
kodlar 

tıklayınca 
button1 

döngü(!x<6) 
listbox1.lbekle=!eleman 
!x=!x+1 

şart(!x=3) 
mesajkutusu(yarısı,yarısına geldik) 
şartson 

döngüson 

olayson 
olayson 

programaçılırken 
mesajkutusu(merhaba,merhaba) 
olayson 

programkapanırken 
mesajkutusu(hoşçakal,hoşçakal) 
olayson 
son