March 28, 2024, 07:34:09 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


Preview Version instructions

Started by Ionic Wind Support Team, May 29, 2007, 11:32:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

May 29, 2007, 11:32:09 PM Last Edit: January 04, 2009, 03:12:00 PM by Paul Turley
Posting here so everyone can view.  The Emergence BASIC compiler for Linux is the furthest along so that is the one that is included in the preview version.  It is very "raw" right now, meaning you have the choice of using it from the command line or from an IDE like anjunta which I have been doing.

First step is to extract the files from the eb_linux archive.

After downloading the .zip and extracting:

Copy ebparse and ebstd.incc into your /usr/bin directory
Copy libebasic.a into the /usr/lib directory

Change the ownership of ebparse and libebasic.a to root and make ebparse executable. 

Then you will need the following packages (list to be adjusted as necessary)
binutils
nasm
libgtk2.0-0
libc6-dev
libgtk2.0-dev
libgtk2.0-doc (optional)

You probably have some/most of them already installed by default.  Check the synaptic package manager (or use apt-get) to verify. The dependancies of libgtk2.0 will bring in anything else needed.

the compiler under linux works a bit differently than under windows.  Assembling is no longer a separate step and the parser calls nasm directly to create an object file ready to be linked.  After you have everything installed there are two steps to compile an .eba file namely #1 creating the object file, #2 linking into an executable. 

For example if you have a directory named ebasic_test_programs under your home directory, and a program you want to compile named test.eba the procedure may look like this:

cd ebasic_test_programs
ebparse "test.eba" "test.o"
ld -lc -lgtk-x11-2.0 -o "test" "test.o" /usr/lib/libebasic.a --dynamic-linker /lib/ld-linux.so.2

And you would run the program by typing:

./test

The "ld" line might look a little scary at first, stick it in a batch file to make it easier, or set up a third party IDE.  Broken down it means:

ld {invoke the linker)
-lc {link against the C runtime}
-lgtk-x11-2.0 {link against the GTK2 library}
-o "test" {create the exectuable named 'test'}
"test.o" {input file}
/usr/lib/libebasic.a {input file}
--dynamic-linker /lib/ld-linux.so.2 {the dynamic loader to use for shared libraries}

For a simple shell program you can, in most cases, omit the gtk-x11-2.0 line, it doesn't hurt to leave it in of course, and won't make your executable any larger if your only using shell I/O.  I recommend just leaving it in.

Now a test program to make sure your installation is working:

Save as keno.eba

'keno example program for Emergence BASIC Linux

'Green = selected, yellow = miss, red = hit

'the balls are represented in an integer array

'values for the array are:

'0 = not selected, 1 = selected, 2 = hit, 3 = miss

'Compile as a WINDOWS target

extern _argc as int

extern _argv as pointer

declare cdecl extern gtk_init(argc as pointer,argv as pointer)

declare cdecl extern gtk_main()

declare cdecl extern gtk_main_quit()

$main

gtk_init(&_argc,&_argv)



DEF playwin:window

DEF l,t,w,h,x,y,num,selectcount,picked,hitcount:int

DEF balls[80]:int

DEF pay[10,10]:int

DEF bet:int

DEF credits:int

bet = 1

credits = 100

DEF selected,hit,colorball,miss,cacheDC:int

DEF strball,strstat:STRING

DECLARE selectball(mx:int,my:int)

'The balls colors

selected = RGB(0,255,0)

hit = RGB(255,0,0)

miss = RGB(255,255,0)

'load the paytable

for x=0 to 9

for y=0 to 9

getdata paytable,h

pay[x,y] = h

next y

next x

'the play window

OPENWINDOW playwin,0,0,540,400,@NOAUTODRAW|@MINBOX,0,"Keno",&playhandler

SETWINDOWCOLOR playwin,RGB(0,0,255)

CONTROL playwin,@BUTTON,"START",5,340,70,22,0x50000000,1

CONTROL playwin,@BUTTON,"CLEAR",80,340,70,22,0x50000000,2

CONTROL playwin,@BUTTON,"Up",250,340,30,23,0x50000000,3

CONTROL playwin,@BUTTON,"Dn",311,340,30,23,0x50000000,4

CONTROL playwin,@EDIT,"1",280,340,30,23,0x50000000|@CTEDITRO,5

control playwin,@BUTTON,"+1",405,340,34,22,0x50000000,6

control playwin,@BUTTON,"+5",439,340,34,22,0x50000000,7

control playwin,@BUTTON,"+20",473,340,34,22,0x50000000,8

control playwin,@BUTTON,"+50",507,340,34,22,0x50000000,9

'normal stuff

run = 1

playing  = 0



gtk_main()

CLOSEWINDOW playwin

END



'The playwin window procedure subroutine

'Center the window on creation.

'Process the left mouse button to select/unselect balls.

'Process the timer to pick random balls.

'Start and clear the board in response to our two buttons

SUB playhandler

SELECT @CLASS

CASE @IDCLOSEWINDOW

gtk_main_quit()

CASE @IDCREATE

'CENTERWINDOW playwin

CASE @IDPAINT

GOSUB drawballs

'RETURN TRUE

CASE @IDLBUTTONDN

selectball(@MOUSEX,@MOUSEY)

CASE @IDCONTROL

IF @NOTIFYCODE = 0

SELECT @CONTROLID

CASE 1

if credits < bet

MessageBox playwin,"Not enough credits to play","Keno"

else

GOSUB startplay

endif

CASE 2

GOSUB clearboard

CASE 3:'bet up

bet+=1

if bet > 10 then bet = 10

SetControlText playwin,5,LTRIM$(STR$(bet))

GOSUB drawballs

CASE 4:'bet down

bet-=1

if bet < 1 then bet = 1

SetControlText playwin,5,LTRIM$(STR$(bet))

GOSUB drawballs

case 6:

credits+=1

GOSUB drawballs

case 7:

credits+=5

GOSUB drawballs

case 8:

credits+=20

GOSUB drawballs

case 9:

credits+=50

GOSUB drawballs

ENDSELECT

ENDIF

CASE @IDCHAR

SELECT @CODE

CASE ASC("s")

CASE& ASC("S")

GOSUB startplay

CASE ASC("c")

CASE& ASC("C")

GOSUB clearboard

ENDSELECT

CASE @IDTIMER

if picked < 20

GOSUB pickball

picked = picked + 1

GOSUB drawballs

else

GOSUB endplay

playing = 0

endif

ENDSELECT

RETURN

ENDSUB



'------------------- DRAWBALLS ---------------

'Draw 80 balls and the status text

'Balls are colored depending on the value of

'the balls array.

'0 = not selected, 1 = selected, 2 = hit, 3 = miss

'---------------------------------------------

SUB drawballs

int width,height

SETFONT playwin,"Arial",12,400

DRAWMODE playwin,@TRANSPARENT

FRONTPEN playwin,RGB(0,0,0)

cacheDC = GetHDC(playwin)

num = 1

for y = 0 to 7

for x = 0 to 9

colorball = 0xFFFFFF

if balls[num-1] = 1 THEN colorball = selected

if balls[num-1] = 2 THEN colorball = hit

if balls[num-1] = 3 THEN colorball = miss

CIRCLE playwin,(x*40)+20,(y*40)+20,20,0,colorball

MOVE playwin,(x*40) + 10, (y*40) + 10

strball = ltrim$(str$(num))

if num < 10 THEN strball = "0" + strball

PRINT playwin,strball

num = num + 1

next x

next y

ReleaseHDC playwin,cacheDC



SETFONT playwin,"Lucida Console",10,800

cacheDC = GetHDC(playwin)

RECT playwin,407,5,120,310,RGB(255,255,0),RGB(0,0,255)

DRAWMODE playwin,@TRANSPARENT

for x = 1 to selectcount

if(hitcount = x)

RECT playwin,408,x*26-14,118,26,RGB(0,255,0),RGB(0,255,0)

move playwin,410,x*26-10

print playwin,using("##   ######",x,pay[x-1,selectcount-1]*bet)

else

move playwin,410,x*26-10

print playwin,using("##   ######",x,pay[x-1,selectcount-1]*bet)

endif

next x

ReleaseHDC playwin,cacheDC



DRAWMODE playwin,@OPAQUE

SETFONT playwin,"MS Sans Serif",10,400

cacheDC = GetHDC(playwin)

BACKPEN playwin,RGB(0,0,255)

GETTEXTSIZE playwin,"Hits",width,height

move playwin,407+60-width/2,0

print playwin,"Hits"



MOVE playwin,155,342

strstat = "Drawn: " + ltrim$(str$(picked))

PRINT playwin,strstat,"  "

MOVE playwin,420,322

FRONTPEN playwin,RGB(255,255,100)

PRINT "CREDITS: ",ltrim$(str$(credits)),"    "

MOVE playwin,282,322

PRINT "BET"

ReleaseHDC playwin,cacheDC

RETURN

ENDSUB

'------------------- SELECTBALL ---------------

'The mouse coordinates are converted to a ball number

'Balls can be deselected by clicking a second time

'Only a maximum of 10 balls can be selected in standard keno

'----------------------------------------------

SUB selectball(mx:int,my:int)

IF playing THEN RETURN

x = (mx - 10) / 40.0

y = (my - 10) / 40.0

num = x + (y * 10)

if (num > 79) | (num < 0) THEN RETURN

SELECT balls[num]

CASE 3

CASE& 0

IF selectcount < 10

balls[num] = 1

selectcount = selectcount + 1

ENDIF

CASE 1

CASE& 2

balls[num] = 0

selectcount = selectcount - 1

ENDSELECT

GOSUB drawballs

RETURN

ENDSUB

'---------------- STARTPLAY -----------------

'The previous draws are cleared and a timer is

'started. One ball will be randomly picked every

'time the timer expires

'The two buttons are disabled until play completes

'--------------------------------------------

SUB startplay

IF selectcount > 0

credits -= bet

playing = 1

picked = 0

hitcount = 0

FOR x = 0 to 79

IF balls[x]=3 THEN balls[x] = 0

IF balls[x]=2 THEN balls[x] = 1

NEXT x

drawballs()

for x=1 to 9

ENABLECONTROL playwin,x,0

next x

STARTTIMER playwin,100

ENDIF

RETURN

ENDSUB

'----------------- ENDPLAY ------------------

'After 20 balls are generated the timer is stopped

'The two buttons are re-enabled

'--------------------------------------------

SUB endplay

STOPTIMER playwin

for x=1 to 9

ENABLECONTROL playwin,x,1

next x

credits += pay[hitcount-1,selectcount-1]*bet

DrawBalls()

RETURN

ENDSUB

'---------------- CLEARBOARD ----------------

'Clears all the selected balls and resets the counters

'--------------------------------------------

SUB clearboard

FOR x = 0 TO 79

balls[x] = 0

NEXT x

selectcount = 0

picked = 0

hitcount = 0

GOSUB drawballs

RETURN

ENDSUB

'---------------- PICKBALL -----------------

'Generates a random number between 0 and 79

'if the number has already been drawn then

'continues generating a random number until

'a non drawn ball is found

'-------------------------------------------

SUB pickball

done = 0

DO

x = int(rnd(80))

if (balls[x] <> 3) & (balls[x] <> 2) THEN done = 1

UNTIL done

'If its a selected ball then set it to 'hit'

IF balls[x] = 1

balls[x] = 2

hitcount = hitcount + 1

ENDIF

'If its a non selected ball then set it to 'miss'

IF balls[x] = 0 THEN balls[x] = 3

RETURN

ENDSUB



'balls picked

'    1,2,3,4,5,6,7,8,9,10

databegin paytable

data 3,0,0,0,0,0,0,0,0,0: 'match 1

data 0,15,2,2,0,0,0,0,0,0: 'match 2

data 0,0,46,5,3,3,1,0,0,0: 'match 3

data 0,0,0,91,12,4,2,2,1,0: 'match 4

data 0,0,0,0,810,70,26,12,6,5: 'match 5

data 0,0,0,0,0,1600,400,98,44,24: 'match 6

data 0,0,0,0,0,0,7000,1652,335,142: 'match 7

data 0,0,0,0,0,0,0,10000,4700,1000: 'match 8

data 0,0,0,0,0,0,0,0,10000,4700: 'match 9

data 0,0,0,0,0,0,0,0,0,20000: 'match 10

dataend



/*                                       TABLE 1

                               NUMBER OF SPOTS SELECTED

     HITS     1     2   3     4     5       6     7         8       9      10

       1      3     0   0     0     0       0     0         0       0       0

       2     --    15   2     2     0       0     0         0       0       0

       3     --    --  46     5     3       3     1         0       0       0

       4     --    --  --    91    12       4     2         2       1       1

       5     --    --  --    --   810      70    26        12       6       5

       6     --    --  --    --    --    1600   400        98      44      24

       7     --    --  --    --    --      --  7000      1652     335     142

       8     --    --  --    --    --      --    --     10000    4700    1000

       9     --    --  --    --    --      --    --        --   10000    4700

      10     --    --  --    --    --      --    --        --      --   20000

*/


You will notice there are some differences from the Windows version.  I am not totally done desiging the startup/shutdown code hence the need for the gtk_init call.  Also message processing is still in the early stages which necessitates the gtk_main and gtk_main_quit calls. 

For a console test program use this:

Save as heapsort.eba

$main



'EBASIC heapsort demo

'For EBASIC 1.0 or greater

'Compile as a CONSOLE target



type timeval

int tv_sec

uint tv_usec

endtype

declare cdecl extern gettimeofday(tv as timeval,tz as pointer),int



DEF i:INT

DEF display as CHAR

DECLARE hsort(A[]:STRING,inr:INT)

DECLARE heapify(A[]:STRING,hleft:INT,hright:INT)

DECLARE swap(A[]:STRING,ij:INT,ik:INT)

DECLARE cdecl extern clock(),uint 

setprecision 4

def maxsize:int

def testarray as POINTER

'OPENCONSOLE

INPUT "Number of items to sort: ",maxsize

INPUT "Display sorted array (Y/N)?",display

testarray = new(STRING,maxsize+1) 

print "generating a random array with ",maxsize,"elements" 

' fill an array with random integers -- array generator by David

for i = 1 to MaxSize 

a = int(rnd(26)+65) 

a$ = chr$(a)   

b$ = "" 

while len(B$) < int(rnd(4)) + 4 

  b = int(rnd(26)+97) 

  b$ = b$+chr$(b) 

endwhile 

rndStr$ = a$ + b$ 

#testarray[i,0] = rndStr$

next i 

PRINT "Sorting..."

aa = msecs()

hsort(#testarray,maxsize)

bb = msecs()



IF (display = ASC("Y")) | (display = ASC("y"))

FOR i = 1 TO maxsize

IF i = maxsize

PRINT #testarray[i,0]

ELSE

PRINT #testarray[i,0],",",

ENDIF

NEXT i

ENDIF



PRINT 

print "Sorted ",maxsize,"items in ",(bb-aa)/1000.0," seconds -------"

DELETE testarray

print "Press any key to exit"

DO:UNTIL INKEY$ <> ""

'CLOSECONSOLE

END



'-----------------------------------------------

SUB hsort(A[]:STRING,inr:INT)

DEF ix:INT



'first phase -- build heap

ix=INT(inr/2)

WHILE (ix >= 1)

heapify(A,ix,inr)

ix=ix-1

ENDWHILE



'second phase -- put largest at end of array,

'use heapify to grab the next remaining largest

ix = inr 

WHILE (ix > 1)

swap(A,1,ix)

heapify(A,1,ix-1)

ix=ix-1

ENDWHILE

RETURN

ENDSUB

'-----------------------------------------------

'instill heap condition

SUB heapify(A[]:STRING,hleft:INT,hright:INT)

DEF ic,ip:INT

ip = hleft

ic = 2*ip

WHILE (ic <= hright)

IF (ic < hright) & (A[ic+1] > A[ic]) THEN ic = ic + 1

IF (A[ip] < A[ic]) THEN swap(A,ic,ip)

ip = ic

ic=2*ip

ENDWHILE

RETURN

ENDSUB

'------------------------------------------------

SUB swap(A[]:STRING,ij:INT,ik:INT)

DEF t:STRING

t=A[ij]: A[ij]=A[ik]: A[ik]=t

RETURN

ENDSUB



SUB msecs(),uint

timeval tv

gettimeofday(tv,NULL)

return (tv.tv_sec - 1167606262) * 1000 + tv.tv_usec / 1000

ENDSUB


You will notice the $main statement.  The Windows IDE uses the optional /m setting of ebparse to automatically declare "main" in a single file build, in the background without you noticing.  You can as well like so:

ebparse "heapsort.eba" "heapsort.o" /m
ld -lc -lgtk-x11-2.0 -o "heapsort" "heapsort.o" /usr/lib/libebasic.a --dynamic-linker /lib/ld-linux.so.2

Which allows you to omit the $main statement.

OK too tired to think now.  Let's see how many of you that purchased the preview version get it to work.

Paul.
Ionic Wind Support Team

Doc

May 30, 2007, 01:41:41 AM #1 Last Edit: May 30, 2007, 01:54:43 AM by David Coker
Okay... it's 2:35 am and I'm gonna pay dearly for this tomorrow at work, but what the heck.
I can claim first dibs to an error message if nothing else. ;)

Here's my code:
OPENCONSOLE
PRINT "EBasic for Linux Rocks!"
PRINT ""
PRINT "Press Any Key To Close"
DO:UNTIL INKEY$ <> ""
CLOSECONSOLE
END


and here's the error I get:
/usr/lib/libebasic.a(conmain.o): In function `_start':
conmain.asm:(.text+0x23): undefined reference to `_ib_main'


I tried it both with and without the "-lgtk-x11-2.0 " added so I'm not sure what went wrong.

-Doc-

Edit: Using text editor and command shell on Ubuntu 7.04
(I did cheat because it was late, copying a portion of the code from the CHM file to speed things up)

Ionic Wind Support Team

Put $main at the top of the file.  OPENCONSOLE can be omitted because it doesn't do anything ;)
Ionic Wind Support Team

Doc

QuotePut $main at the top of the file

That works like a charm! ...actually I knew that openconsole wouldn't open anything in Linux. ;) I Just didn't know whether you had left it for some reason or not.

Speaking of, will there be a simple text list of the working stuff available anytime soon?

-Doc-

Ionic Wind Support Team

All of the text based (shell) commands should be working.  Opening windows, adding buttons and edit controls, changing fonts, colors, etc are all working.

You will know when you hit a command I haven't converted yet.  The linker will complain about unresolved references since the command I haven't ported still have references to the Win API in them, which of course won't resolve on Linux ;)

Paul.
Ionic Wind Support Team

Doc

QuoteYou will know when you hit a command I haven't converted yet.

Heh heh... no doubt about that... as in first hand experience!
::)  :o  ::)

-Doc-

Doc

Okay, I *promise* that I won't be continually bugging you. Just trying to get my feet wet a little bit.

This code:
DEF w1 as WINDOW
OPENWINDOW w1,0,0,350,350,@MINBOX|@MAXBOX|@SIZE,NULL,"Ebasic For Linux",&main
WAITUNTIL w1 = 0
END

SUB main
IF @MESSAGE = @IDCLOSEWINDOW
CLOSEWINDOW w1
ENDIF
RETURN
ENDSUB


Creates the biggest mess of errors I've seen since back when I was playing around with C and C++

What do I have  wrong there?
After I can get a simple window functional, I'll be off and running for a while without hounding you. ;)

-Doc-

Ionic Wind Support Team

thats why I gave you the keno source code.  And the instuctions.  Sorry about the double spaced code, it just ended up that way when cutting and pasting from Anjunta.

You have to follow the same startup stuff.  gtk_init, gtk_main, etc.

gtk_main is the substitute for WAIT/WAITUNTIL for now.   

Unlike Windows, GTK actually discourages writting your own message loop, in fact they make it really difficult.  So instead of using a controlling variable like 'run' and a loop like WAITUNTIL, you just have two functions which as stated in the example are gtk_main and gtk_main_quit.  I just haven't wrapped them into actual commands yet.

I'll whip up a shorter example in a little while.

Paul.
Ionic Wind Support Team

Parker

I don't have the Linux version, but I would say you probably need some GTK calls.

extern _argc as int
extern _argv as pointer

declare cdecl extern gtk_init(argc as pointer,argv as pointer)
declare cdecl extern gtk_main()
declare cdecl extern gtk_main_quit()

$main

gtk_init(&_argc,&_argv)

DEF w1 as WINDOW
OPENWINDOW w1,0,0,350,350,@MINBOX|@MAXBOX|@SIZE,NULL,"Ebasic For Linux",&main
gtk_main()
gtk_main_quit()

SUB main
IF @MESSAGE = @IDCLOSEWINDOW
CLOSEWINDOW w1
ENDIF
RETURN
ENDSUB


Try that. I've never used GTK before, but it seems like it should work, looking at the keno example.

Doc

Okay, I'm stupid! ...I grabbed the keno code and then forgot all about it.
sheesh, what a nutcase.
sorry to bother.

-Doc-

Rock Ridge Farm (Larry)

I am having problems with the loader - is there more than one version.
I am running Ubuntu ( 2.6.17-11-generic).

Rock Ridge Farm (Larry)

I re-installed the dev lib and it now works.

Doc

Hey Parker,
You were dead on the money with your code!

Sometimes I amaze myself with the stupid stuff I do... really early this morning I actually downloaded the entire forum thread to serve as a point of reference, then went right back to sleep and completely forgot about it.
Didn't even read it through even once!  ::)

Everyone please accept my apologies... I'm like the proverbial bull in the china closet.

-Doc-

Ionic Wind Support Team

My simple example is slightly delayed. 

gtk_main_quit is in the wrong place in Parkers code.  Should be...

extern _argc as int
extern _argv as pointer

declare cdecl extern gtk_init(argc as pointer,argv as pointer)
declare cdecl extern gtk_main()
declare cdecl extern gtk_main_quit()

$main

gtk_init(&_argc,&_argv)

DEF w1 as WINDOW
OPENWINDOW w1,0,0,350,350,@MINBOX|@MAXBOX|@SIZE,NULL,"Ebasic For Linux",&main
gtk_main()
END

SUB main
IF @MESSAGE = @IDCLOSEWINDOW
CLOSEWINDOW w1
                gtk_main_quit()
ENDIF
RETURN
ENDSUB


gtk_main starts an interal messaage loop.  gtk_main_quit() ends that loop and execution continues after the gtk_main call.

.............

Mu Ubuntu install hosed itself sometime between last night and now.   I got impatient waiting for it to finish shutting down and hit the power button...as a note to everyone..DON'T DO THAT!

Luckily all of my files are still on the drive, and I can actually boot into gnome.   But my ethernet driver, ntfs driver, CDROM driver, and sound driver are all non functional at the moment.  So I can't access the net to do a refresh of files or access my Windows drives to copy from there.   I suppose my only option is to burn the latest version in Windows and reinstall the core OS. 

Can't blame Linux, it was my own fault for not waiting for a complete shutdown.  Still a pain though.
Ionic Wind Support Team

Doc

Thanks for the sample Paul.
After finding a few processes hanging using the system monitor, I've been trying to figure out where to put the gtk_main_quit() for a clean end to the program. That makes it perfectly clear. :)

Ouch! Too bad about the Linux box... I learned that the hard way once upon a time myself.
At least you didn't lose your data. :)

-Doc-

Ionic Wind Support Team

Turned out to be an easy fix, once I realized what was going on.   The actual kernel image was corrupted so the solution was to boot with an earlier version of the kernel, update the latest one, and reboot.

I always keep the last two previous kernels in my grub boot menu just in case an upgrade breaks something.  So Ubunutu now happy again, typing from it now, so back to answering questions you may have ;)

Paul.
Ionic Wind Support Team

Rock Ridge Farm (Larry)

Paul
Do you want to know when we encounter a featrue that is not yet working?
I am sure you know what is not converted - do you need to know what we are trying to use so you will
know where to start first?

Ionic Wind Support Team

I already know what I haven't ported yet ;)

I can give you a rough estimate of when something will be worked on.  Right now I am porting controls and their commands.  Dialogs will have to be simulated so don't expect them anytime soon.  There are no 'dialogs' in X, just windows.  GTK2 has a reasonable simulation of a dialog that I am adapting.  Things like 2D commands are far off into the future. 

Paul.
Ionic Wind Support Team

ExMember001

ok heres my first problem :P
when i try to ebparse keno.eba i got this error:
Segmentation fault (core dumped)
am i forgetting something?

Ionic Wind Support Team

OS?  Other Information?  Did you install the packages mentioned in the first post?

A segmentation fault is Linux's version of the Windows GPF.  Not much to go on ;)
Ionic Wind Support Team

David

Everything's working fine here Paul.

ExMember001

'm using ubuntu 7.04 live cd
binutils was install
i installed nasm
and skip the optional file

id put libebasic.a in /libs  and set owner to root
ebparse in /bin and set owner to root and make excutable
put ebstd.incc inthe /bin too

put keno.eba in my home folder

send ebparse "keno.eba" "keno.o" to terminal
and this return the segmentation error  ???

Doc

Hi Krypt!

I would imagine that you've already checked, but it can't hurt to ask anyway... how about the libgtk2.0-dev library?

The all important dev package isn't installed by default.

-Doc-

ExMember001

hi David ;)
installed the libgtk2.0-dev and binutils-dev in case
then retry the ebparse command in the terminal
still getting the segmentation fault

Ionic Wind Support Team

I've not tried it with a live CD yet.  Don't know if that would make a difference or not, but it might.
Ionic Wind Support Team