on error goto [Error] dim info$(10,10) DIM li$(100)' you can adjust this if you really need more editor space global errstate$ global lin global ideloc global r global g global b bmpbutton #h.3.red, "bmp\redbttn.bmp",redclicked, UR,10,10 bmpbutton #h.3.blue, "bmp\bluebttn.bmp",blueclicked , UR, 10,130 bmpbutton #h.3.green, "bmp\grnbttn.bmp",greenclicked, UR, 10,70 bmpbutton #h.3.mred, "bmp\blank5.bmp",mredclicked, UR, 10,40 bmpbutton #h.3.mblue, "bmp\blank4.bmp",mblueclicked, UR, 10,160 bmpbutton #h.3.mgreen, "bmp\blank3.bmp",mgreenclicked, UR, 10,100 bmpbutton #h.3.all, "bmp\grphbttn.bmp",allclicked, UR, 100,160 bmpbutton #h.3.minusall, "bmp\sqrbttn.bmp",minusallclicked, UR, 130, 160 bmpbutton #h.3.load,"bmp\OPEN.bmp",[loadit],UR 10,200 bmpbutton #h.3.save,"bmp\SAVE.bmp",[saveit],UR 10,230 bmpbutton #h.3.compile,"bmp\xxRun.bmp",[compileit],UR 10,260 bmpbutton #h.4.helpmsg,"bmp\help.bmp",[HELPME],LL 950,50 lin =0 r=50 g=50 b=50 call screen 1200,600 #h.4 "cls;place 10 30;down;backcolor 120 130 125;color white;fill 120 130 125" #h.4 "\ Click on the ? to get helpful hints-" errstate$="no" gcolor$="white" #h.2, "down;place 10 40;color blue;\";li$(lin);"_" #h.3 "down;color 140 75 145;backcolor black;place 10 330" #h.3 "\Hold Left or Right Mouse Button" #h.3 "place 10 350;\to get a location (needs movement)" #h.3 "color green;place 150 215;\LOAD" #h.3 "place 150 245;\SAVE" #h.3 "place 145 275;\COMPILE" scan #h.1 "when leftButtonMove [mouseloc]" #h.1 "when rightButtonMove [rmouseloc]" #h.2 "setfocus;place 10 20" #h.2 "when characterInput [inp]" [back] wait [quit]'************************************************************************************* timer 0 #h.1 "discard" 'print #ide, txt$ 'close #ide close #h end [HELPME] #h.4 "cls;place 10 30;down;backcolor 120 130 125;color white;fill 120 130 125" if hmn> 8 then hmn=0 if hmn=0 then #h.4 "\Type commands like: down;color green;line 100 100 200 200;circle 100" if hmn=1 then #h.4 "\ USE ARROW KEYS TO SCROLL UP AND DOWN THE EDITOR-" if hmn=2 then #h.4 "\<ENTER> does a line return and auto runs and updates draw." if hmn=3 then #h.4 "\ Dont forget to type 'down' at the start of your code and dont forget a 'color'" if hmn=4 then #h.4 "\ Use your Left Mouse Button activate areas you need to use" if hmn=5 then #h.4 "\ When you click COMPILE it saves to 'A draw in basic.bas'" if hmn=6 then #h.4 "\ When you click on SAVE it saves to 'A Notbasic.bas'" if hmn=7 then #h.4 "\ The COMPILER makes draws with #h.1 on each line. Make your graphics box same" if hmn=8 then #h.4 "\ the semicolon can separate many commands: 'backcolor green;fill green;cls'" hmn=hmn+1 goto [back] [Error]'*********************************************************************************** notice "YOUR ERROR IS: ";li$(lin);"..Try again " ' empty the string so its no longer an error txt$="" li$(lin)="" errstate$="yes" Resume end [mouseloc] #h.3 "down;color black;backcolor black;place 10 310" #h.3 "\Left click was at ";moux;",";mouy #h.3 "down;color white;backcolor black;place 10 310" moux= MouseX mouy= MouseY #h.3 "\Left click was at ";moux;",";mouy goto [back] [rmouseloc] #h.3 "down;color black;backcolor black;place 10 290" #h.3 "\Right click was at ";mx;",";my #h.3 "down;color white;backcolor black;place 10 290" mx= MouseX my= MouseY #h.3 "\Right click was at ";mx;",";my goto [back] [compileit] gfile$="A draw in basic.bas" poz=0' temporary variable for increment for array open gfile$ for output as #fil while li$(poz)<>"" thestring$= li$(poz) print #fil, "#h.1 ";chr$(34);thestring$;chr$(34) poz=poz+1 wend close #fil goto [back] end ' **********************************************************<OPEN FILE>*(HAS REDIM FOR li$(number)) [loadit] gfile$="A Notbasic.bas" poz=0'temporary variable for increment for array REDIM li$(100) if fileExists(DefaultDir$, "A Notbasic.bas") then open gfile$ for input as #fil while eof(#fil) > -1 input #fil, thestring$ li$(poz)=thestring$ poz=poz+1 wend close #fil else fexists$="" end if txt$=li$(0) goto [back] end function fileExists(path$, filename$) 'dimension the array info$( at the beginning of your program files path$, filename$, info$() fileExists = val(info$(0, 0)) 'non zero is true end function ' **********************************************************<SAVE FILE>********************* [saveit] gfile$="A Notbasic.bas" poz=0' temporary variable for increment for array open gfile$ for output as #fil while li$(poz)<>"" thestring$= li$(poz) print #fil, thestring$ poz=poz+1 wend close #fil goto [back] end [inp]'*******************************************************Character Input BEGINS -Find accepted key presses ****** ch$ = Inkey$ #h.2 "down;backcolor 180 180 180;fill 180 180 180;color blue"' ***********Refresh TEXT screen c2$=left$(ch$, 1) if asc(ch$) >32 and asc(ch$)<127 then txt$=txt$+ch$ if ch$=" " then txt$=txt$+" " if asc(ch$) =8 then sl= len(txt$)-1:s1$= mid$(txt$,1,len(txt$)-1):txt$= s1$:#h.2 "cls" if len(Inkey$)>1 then key1$=right$(Inkey$,1) key2$=left$(Inkey$,1) else key1$=Inkey$ key2$="" end if ' print len(Inkey$), if key2$="" then print " ", else print asc(key2$), ch=asc(key1$) #h.2 "backcolor 150 150 150;fill 180 180 180 ;cls;color blue" if asc(ch$)= 13 then call runit'*********************************THE DRAW************************ lpos0$= str$(lin-1)+" " lpos1$= str$(lin)+" " lpos2$= str$(lin+1)+" " if lin>0 then print #h.2, "place 10 20;\";lpos0$;"";li$(lin-1) #h.2, "place 10 40;\";lpos1$;"";li$(lin);"_" if lin<500 then print #h.2, "place 10 60;\";lpos2$;"";li$(lin+1) li$(lin)=txt$ ' this line will make issues if it is active if ch=37 then curs=curs-1 if ch=39 then curs=curs+1 if ch=38 then lin=lin-1 if lin<0 then lin=0 if ch=40 then lin=lin+1 if ch$="(" then lin=lin-1 if asc(ch$) =13 then if errstate$="no" then lin=lin+1 if errstate$="yes" then errstate$="no" if lin>100 then lin=100' lpos0$= str$(lin-1)+" " lpos1$= str$(lin)+" " lpos2$= str$(lin+1)+" " txt$=li$(lin) #h.2 "backcolor 180 180 180;fill 180 180 180;cls"'<<<<<<<<<<<<<<<<<<<<TEXT if lin>0 then print #h.2, "place 10 20;\";lpos0$;"";li$(lin-1) #h.2, "place 10 40;\";lpos1$;"";li$(lin);"_" if lin<100 then print #h.2, "place 10 60;\";lpos2$;"";li$(lin+1) '************************** goto [back] wait sub runit tl=0 #h.1 "place 0 0;down;cls" [cyclerun] if len(li$(tl))=0 then goto [getout] #h.1 "down;";li$(tl) tl=tl+1 goto [cyclerun] [getout] end sub '****************************************COLOR SELECTION TOOL** sub allclicked bttnHandle$ r=r+5 g=g+5 b=b+5 if r>255 then r=0 if g>255 then g=0 if b>255 then b=0 call mixedcolor end sub sub minusallclicked bttnHandle$ r=r-5 g=g-5 b=b-5 if r < 0 then r=255 if g < 0 then g=255 if b < 0 then b=255 call mixedcolor end sub sub redclicked bttnHandle$ r=r+5 if r > 255 then r=0 call mixedcolor end sub sub blueclicked bttnHandle$ b=b+5 if b > 255 then b=0 call mixedcolor end sub sub greenclicked bttnHandle$ g=g+5 if g >255 then g=0 call mixedcolor end sub sub mgreenclicked bttnHandle$ g=g-5 if g<0 then g=255 call mixedcolor end sub sub mblueclicked bttnHandle$ b=b-5 if b<0 then b=255 call mixedcolor end sub sub mredclicked bttnHandle$ r=r-5 if r<0 then r=255 call mixedcolor end sub sub mixedcolor #h.3 "flush" #h.3 "place 120 80" #h.3 "down" rgb$= str$(r)+" "+str$(g)+" "+str$(b) #h.3 "color ";r;" ";g;" ";b #h.3 "backcolor "; rgb$ #h.3 "ellipsefilled 100 100" #h.3 "place 10 10" #h.3 " color white" #h.3 " backcolor black" #h.3 "\The colors are ";r;" ";g;" ";b;"***" #h.3 "flush" end sub '******************* SCREEN*************** sub screen x,y nomainwin WindowWidth=x WindowHeight=y UpperLeftX=1 UpperLeftY=1 global ch$ global txt$ global name$ global name1$ global getsizeh' globals have been moved to make it a cleaner interface global getsizev graphicbox #h.1, 0,0,949,450 graphicbox #h.2, 0,500,1200,600 graphicbox #h.3, 950,1,1200,450 graphicbox #h.4, 0,451,949,499 open "THE FIRST REAL TIME GRAPHICS IDE (USE MOUSE LEFT BUTTON TO RIGHT CLICK ON WORK AREAS TO MAKE THEM WORK" for window_nf as #h print #h, "trapclose [quit]" print #h.1, "down;backcolor black;fill black" print #h.2, "down;backcolor black;fill 180 180 180" print #h.3, "down;backcolor black;fill black" print #h.4, "down;backcolor black;fill 120 130 125" end sub