Jump to content
IGNORED

Official Home for batari Basic


RevEng

Recommended Posts

I apologize for necroposting, but I'm kinda waiting for batariBasic to be on ARM64...and I'm not sure if I want VSCode on my Raspberry Pi 400 just to work with batariBasic and stuff. Thanks in advance and I'm sorry for bugging y'all.

Link to comment
Share on other sites

Short term, I don't have cycles to look at setting up a new cross-compiling and testing environment. Longer term, I'm open to it.

 

For now you can build the bB CLI tools from source on the pi. i.e...

  1. setup a basic development environment on the pi with "sudo apt-get install build-essential"
  2. download and unpack the source package from the github release page
  3. change directories to where the source package was unpacked and type "make".
  4. setup the expected PATH info by typing "./install_ux.sh"

You'll also need dasm installed. The raspbian version of dasm looks current, so you should be able to just "sudo apt-get install dasm" for that.

  • Thanks 1
Link to comment
Share on other sites

On 6/1/2023 at 10:55 AM, RevEng said:

Short term, I don't have cycles to look at setting up a new cross-compiling and testing environment. Longer term, I'm open to it.

 

For now you can build the bB CLI tools from source on the pi. i.e...

  1. setup a basic development environment on the pi with "sudo apt-get install build-essential"
  2. download and unpack the source package from the github release page
  3. change directories to where the source package was unpacked and type "make".
  4. setup the expected PATH info by typing "./install_ux.sh"

You'll also need dasm installed. The raspbian version of dasm looks current, so you should be able to just "sudo apt-get install dasm" for that.

Okay, so...I run make on my Raspberry Pi 400 and all I got is this:
 

cc -O2 -o 2600basic 2600bas.c statements.c keywords.c
2600bas.c: In function ‘main’:
2600bas.c:158:7: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
  158 |       strncpy(finalcode, mycode, strlen(mycode) - strlen(codeadd));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2600bas.c:158:34: note: length computed here
  158 |       strncpy(finalcode, mycode, strlen(mycode) - strlen(codeadd));
      |                                  ^~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7b2ae0): multiple definition of `pfdata'; /tmp/ccpPNXbx.o:(.bss+0x7b24f8): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7bf2e0): multiple definition of `sprite_data'; /tmp/ccpPNXbx.o:(.bss+0x7becf8): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7a4080): multiple definition of `redefined_variables'; /tmp/ccpPNXbx.o:(.bss+0x7a1378): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7b03d0): multiple definition of `fixpoint88'; /tmp/ccpPNXbx.o:(.bss+0x7ad6c8): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7b1758): multiple definition of `fixpoint44'; /tmp/ccpPNXbx.o:(.bss+0x7aea50): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e80): multiple definition of `constants'; /tmp/ccpPNXbx.o:(.bss+0x178): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x73c): multiple definition of `branchtargetnumber'; /tmp/ccpPNXbx.o:(.bss+0x48): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x6e0): multiple definition of `Areg'; /tmp/ccpPNXbx.o:(.bss+0x138): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x6dc): multiple definition of `doingfunction'; /tmp/ccpPNXbx.o:(.bss+0x4c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e70): multiple definition of `numelses'; /tmp/ccpPNXbx.o:(.bss+0x3c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x4): multiple definition of `numjsrs'; /tmp/ccpPNXbx.o:(.bss+0x30): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0xc): multiple definition of `line'; /tmp/ccpPNXbx.o:(.bss+0x1c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e74): multiple definition of `ors'; /tmp/ccpPNXbx.o:(.bss+0x2c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e78): multiple definition of `numthens'; /tmp/ccpPNXbx.o:(.bss+0x38): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x718): multiple definition of `numconstants'; /tmp/ccpPNXbx.o:(.bss+0x44): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x6d8): multiple definition of `optimization'; /tmp/ccpPNXbx.o:(.bss+0x14): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2dc): multiple definition of `numredefvars'; /tmp/ccpPNXbx.o:(.bss+0x40): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e0): multiple definition of `numfixpoint88'; /tmp/ccpPNXbx.o:(.bss+0x24): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2e4): multiple definition of `numfixpoint44'; /tmp/ccpPNXbx.o:(.bss+0x20): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x740): multiple definition of `kernel_options'; /tmp/ccpPNXbx.o:(.bss+0x16c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x748): multiple definition of `pfcolornumber'; /tmp/ccpPNXbx.o:(.bss+0x170): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x744): multiple definition of `pfcolorindexsave'; /tmp/ccpPNXbx.o:(.bss+0x174): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x1118): multiple definition of `forend'; /tmp/ccpPNXbx.o:(.bss+0x7afdd8): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x24a8): multiple definition of `forstep'; /tmp/ccpPNXbx.o:(.bss+0x7b07a0): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x750): multiple definition of `forlabel'; /tmp/ccpPNXbx.o:(.bss+0x7b1168): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x1ae0): multiple definition of `forvar'; /tmp/ccpPNXbx.o:(.bss+0x7b1b30): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x14): multiple definition of `playfield_number'; /tmp/ccpPNXbx.o:(.bss+0x5c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x18): multiple definition of `playfield_index'; /tmp/ccpPNXbx.o:(.bss+0x60): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0xe4): multiple definition of `sprite_index'; /tmp/ccpPNXbx.o:(.bss+0x50): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x2f0): multiple definition of `user_includes'; /tmp/ccpPNXbx.o:(.bss+0x7fbd88): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x720): multiple definition of `macroactive'; /tmp/ccpPNXbx.o:(.bss+0x134): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x724): multiple definition of `extraactive'; /tmp/ccpPNXbx.o:(.bss+0x130): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x72c): multiple definition of `extralabel'; /tmp/ccpPNXbx.o:(.bss+0x12c): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x728): multiple definition of `extra'; /tmp/ccpPNXbx.o:(.bss+0x128): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x74c): multiple definition of `numfors'; /tmp/ccpPNXbx.o:(.bss+0x34): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x730): multiple definition of `lifekernel'; /tmp/ccpPNXbx.o:(.bss+0x58): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x71c): multiple definition of `multisprite'; /tmp/ccpPNXbx.o:(.bss+0x54): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x0): multiple definition of `bs'; /tmp/ccpPNXbx.o:(.bss+0x8): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x8): multiple definition of `last_bank'; /tmp/ccpPNXbx.o:(.bss+0x4): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0xe0): multiple definition of `superchip'; /tmp/ccpPNXbx.o:(.bss+0x10): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x7fc370): multiple definition of `sprites_barfed'; /tmp/ccpPNXbx.o:(.bss+0x7fc170): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x738): multiple definition of `smartbranching'; /tmp/ccpPNXbx.o:(.bss+0x18): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x10): multiple definition of `ROMpf'; /tmp/ccpPNXbx.o:(.bss+0x28): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x734): multiple definition of `condpart'; /tmp/ccpPNXbx.o:(.bss+0x0): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0x714): multiple definition of `ongosub'; /tmp/ccpPNXbx.o:(.bss+0xc): first defined here
/usr/bin/ld: /tmp/ccvf7Hfy.o:(.bss+0xe8): multiple definition of `includespath'; /tmp/ccpPNXbx.o:(.bss+0x7fc178): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0xc): multiple definition of `branchtargetnumber'; /tmp/ccpPNXbx.o:(.bss+0x48): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x10): multiple definition of `Areg'; /tmp/ccpPNXbx.o:(.bss+0x138): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x44): multiple definition of `doingfunction'; /tmp/ccpPNXbx.o:(.bss+0x4c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x4): multiple definition of `numelses'; /tmp/ccpPNXbx.o:(.bss+0x3c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x48): multiple definition of `numjsrs'; /tmp/ccpPNXbx.o:(.bss+0x30): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x4c): multiple definition of `line'; /tmp/ccpPNXbx.o:(.bss+0x1c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x0): multiple definition of `ors'; /tmp/ccpPNXbx.o:(.bss+0x2c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x8): multiple definition of `numthens'; /tmp/ccpPNXbx.o:(.bss+0x38): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x50): multiple definition of `numconstants'; /tmp/ccpPNXbx.o:(.bss+0x44): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x54): multiple definition of `optimization'; /tmp/ccpPNXbx.o:(.bss+0x14): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x58): multiple definition of `numredefvars'; /tmp/ccpPNXbx.o:(.bss+0x40): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x5c): multiple definition of `numfixpoint88'; /tmp/ccpPNXbx.o:(.bss+0x24): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x60): multiple definition of `numfixpoint44'; /tmp/ccpPNXbx.o:(.bss+0x20): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x64): multiple definition of `kernel_options'; /tmp/ccpPNXbx.o:(.bss+0x16c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x68): multiple definition of `pfcolornumber'; /tmp/ccpPNXbx.o:(.bss+0x170): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x6c): multiple definition of `pfcolorindexsave'; /tmp/ccpPNXbx.o:(.bss+0x174): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x70): multiple definition of `constants'; /tmp/ccpPNXbx.o:(.bss+0x178): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7a1270): multiple definition of `redefined_variables'; /tmp/ccpPNXbx.o:(.bss+0x7a1378): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7ad5c0): multiple definition of `fixpoint88'; /tmp/ccpPNXbx.o:(.bss+0x7ad6c8): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7ae948): multiple definition of `fixpoint44'; /tmp/ccpPNXbx.o:(.bss+0x7aea50): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7afcd0): multiple definition of `forend'; /tmp/ccpPNXbx.o:(.bss+0x7afdd8): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7b0698): multiple definition of `forstep'; /tmp/ccpPNXbx.o:(.bss+0x7b07a0): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7b1060): multiple definition of `forlabel'; /tmp/ccpPNXbx.o:(.bss+0x7b1168): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7b1a28): multiple definition of `forvar'; /tmp/ccpPNXbx.o:(.bss+0x7b1b30): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7b23f0): multiple definition of `pfdata'; /tmp/ccpPNXbx.o:(.bss+0x7b24f8): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7bebf0): multiple definition of `playfield_number'; /tmp/ccpPNXbx.o:(.bss+0x5c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7bebf8): multiple definition of `playfield_index'; /tmp/ccpPNXbx.o:(.bss+0x60): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7becc0): multiple definition of `sprite_index'; /tmp/ccpPNXbx.o:(.bss+0x50): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7becc8): multiple definition of `sprite_data'; /tmp/ccpPNXbx.o:(.bss+0x7becf8): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fbd58): multiple definition of `user_includes'; /tmp/ccpPNXbx.o:(.bss+0x7fbd88): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc140): multiple definition of `macroactive'; /tmp/ccpPNXbx.o:(.bss+0x134): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc144): multiple definition of `extraactive'; /tmp/ccpPNXbx.o:(.bss+0x130): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc148): multiple definition of `extralabel'; /tmp/ccpPNXbx.o:(.bss+0x12c): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc14c): multiple definition of `extra'; /tmp/ccpPNXbx.o:(.bss+0x128): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc150): multiple definition of `numfors'; /tmp/ccpPNXbx.o:(.bss+0x34): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc154): multiple definition of `lifekernel'; /tmp/ccpPNXbx.o:(.bss+0x58): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc158): multiple definition of `multisprite'; /tmp/ccpPNXbx.o:(.bss+0x54): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc15c): multiple definition of `bs'; /tmp/ccpPNXbx.o:(.bss+0x8): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc160): multiple definition of `last_bank'; /tmp/ccpPNXbx.o:(.bss+0x4): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc164): multiple definition of `superchip'; /tmp/ccpPNXbx.o:(.bss+0x10): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc168): multiple definition of `sprites_barfed'; /tmp/ccpPNXbx.o:(.bss+0x7fc170): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc16c): multiple definition of `smartbranching'; /tmp/ccpPNXbx.o:(.bss+0x18): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc170): multiple definition of `ROMpf'; /tmp/ccpPNXbx.o:(.bss+0x28): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc174): multiple definition of `condpart'; /tmp/ccpPNXbx.o:(.bss+0x0): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc178): multiple definition of `ongosub'; /tmp/ccpPNXbx.o:(.bss+0xc): first defined here
/usr/bin/ld: /tmp/ccbZYJUv.o:(.bss+0x7fc180): multiple definition of `includespath'; /tmp/ccpPNXbx.o:(.bss+0x7fc178): first defined here
collect2: error: ld returned 1 exit status
make: *** [makefile:15: 2600basic] Error 1


...and yes, I did install dasm before I tried running make. I just don't know what "Error 1" means or whatever. :|

I should also note that I'm actually running 64-bit Raspberry Pi OS instead of 32-bit Raspbian. Thought I'd clarify a bit.

Edited by r_chase
Clarification on which OS I use.
Link to comment
Share on other sites

Sorry about that. It looks like the bB header file usage needs to be cleaned up a bit to keep recent versions of gcc happy. When I get a chance I'll take that on, and advise here.

 

[edit - this was fixed. bB should now compile fine with recent versions of gcc]

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, RevEng said:

Sorry about that. It looks like the bB header file usage needs to be cleaned up a bit to keep recent versions of gcc happy. When I get a chance I'll take that on, and advise here.

I figured. I even asked on Discord and wondered if that is the case. Needless to say, after doing a bit cleaning myself (and installing a package), I got it to compile. I guess this is a learning experience for all of us here. ❤️

P.S.: Credit for the help also goes to @gameblabla_realest on the AtariAge Discord and stuff.

Edited by r_chase
Adding an additional credit.
  • Like 1
Link to comment
Share on other sites

  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...