Jump to content

Photo

Introducing the IntyBASIC SDK


76 replies to this topic

#1 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Tue Jul 14, 2015 8:32 AM

Just when you thought it was safe to go back to the water...
I am proud to announce the all-new, hot off the presses, direct from farm to you, free-roaming, and never fattening...
 
 

IntyBASIC Software Development Kit

for Windows*

(*Soon for the Mac too!)

 

IntyBASIC SDK Icon.png

 
Yes, that's right! A brand new complete SDK to make programming for the Intellivision even easier and better than before!
 
Features
The IntyBASIC SDK sports the following features:

  • An easy-as-pie Installer Wizard that will set everything up in your workstation
  • The latest, bleeding-edge version of IntyBASIC 1.2
  • Included assembler and emulator, configured to work with the SDK easily
  • Easy to use tools for streamlined workflows to build, run, and debug your programs with few keystrokes
  • Tools guide and other documentation for technical assistance
  • Tutorials on using some of the powerful features
  • Newbie & power-user friendly
  • Lots of sample programs including some completed games!
  • Full community support!

IntyBASIC SDK is not a fully integrated development system in the traditional way.  It is still a command-line development environment.  However, we've taken great pains to make sure it is as easy and inviting as possible so that anybody can use it with little to no experience.

 

IntyBASIC SDK Logo.png

 
We are planning for the future
The IntyBASIC Software Development Kit is a work in progress.  It will continue to grow and mature as the community uses it, and new features and additions are coming very soon to make it ever easier!
 
Among the new stuff just around the corner are:

  • More tutorials
  • More sample programs and contributions from the community
  • Integrated code editor with syntax highlighting
  • A version for Mac OS X
  • And more!

Go get it... NOW!
The IntyBASIC SDK is ready and it is here!  Go grab a copy and install it in your Windows PC today.  Start programming for the Intellivision the easy way.  Newer versions will be appended at the end of this post as they become available.

 

 

 
Need help?  Just Ask!
The IntyBASIC SDK is fully supported by a community of volunteers here in AtariAge.  Just post your questions in the Intellivision Programming forum and someone will surely provide some assistance.  Everyone is welcome to use the SDK, newcomers and experienced programmers alike!  So join us and start making games for our favourite platform!
 
 
Acknowledgements
The IntyBASIC SDK is the work of a few individuals who contributed many long hours of their own personal time to bring you the easiest development environment for Intellivision programming.  Their names are below, so make sure to buy them a beer if you happen to come across any of them. :)

  • nanochess
  • GroovyBee
  • Tarzilla
  • Catsfolly
  • DZ-Jay

 

 

What's New
Version 1.1.1 - Jan/08/2017

  • Added infinite loop to INTYNEW template to avoid "falling through" at the end.
  • Users can now select destination folder during installation.
  • INTYDBUG did not enable the debugger correctly.
  • Updated all tools to support usage help invocation.
  • Updated INTYNEW to accept "Author" argument and generate default Mattel-style title screen.
  • Fixed argument extraction bugs in all tools.
  • Added new program "classic" to demonstrate the default classic title screen, in "Examples" folder.
  • Added new option to INTYNEW to suppress default title screen.
  • Updated to the latest version of the IntyBASIC distribution (v1.2.8 ).
  • Updated to the latest version of the SDK-1600 binary tools.
  • Included the latest "constants.bas" library file (v1.24F).
  • Added support for Windows Server 2008 and 2012.
  • ... and more!

 

 

Download


Edited by DZ-Jay, Sat Jan 21, 2017 11:05 AM.


#2 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,709 posts
  • Busy bee!
  • Location:North, England

Posted Tue Jul 14, 2015 9:12 AM

This was a multinational team effort. Thanks for bringing it together guys. Let the games begin!

#3 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Tue Jul 14, 2015 10:22 AM

I've just updated the installation package with the "correct" version.  If you re-download and attempt to install, it will ask you if you are sure you want to replace with an older version.  Ignore this and just click "Yes."

 

I mistakenly took the IntyBASIC version (1.1) as the SDK version, but we should keep them separately so that distribution and releases do not have to be aligned.  Otherwise, we would have to wait for a new version of IntyBASIC to add a tutorial or something.  DOH! :)

 

     -dZ.



#4 Binth OFFLINE  

Binth

    Star Raider

  • 90 posts
  • Location:Madison, WI

Posted Tue Jul 14, 2015 11:55 AM

Thank you all for your contributions and putting this together!



#5 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Tue Jul 14, 2015 12:46 PM

We found a stupid bug in the "intynew" tool to create new projects and given that the downloads count was still low, I went ahead and replaced the build with version 1.0.1.  This is it for now.  Any other reported bugs will be taken in and applied to the next future release.

 

This version has the following changes:

  • INTYNEW tool did not properly set the date in the new project file comments.
  • INTYNEW tool did not change to the new directory at the end, as was expected.
  • Bumped the version.

I know, silly stuff.  Sue me. :)



#6 Tarzilla OFFLINE  

Tarzilla

    Stargunner

  • 1,648 posts
  • Location:Alberta, Canada

Posted Tue Jul 14, 2015 2:13 PM

To get an idea of some of the capabilites of the Intellivision, instead of just reading about GRAM and GROM and SPRITES and other terms, you can also see it in action.

 

 

The full source is included in the SDK and it demonstrates many of the constants that were added as part of the SDK to make it easier not to have to memorize "Magic Hex Numbers."

 

Make some changes and compile with the new INTYBuild and IntyRun command line scripts.

 

I'm not sure what was up with the sound popping, I'll update with a better video when I get a chance.

 

 

 

 

 



#7 barnieg OFFLINE  

barnieg

    Moonsweeper

  • 386 posts
  • Location:Rugby, England

Posted Tue Jul 14, 2015 3:31 PM

Is there a chance of this being available for Linux in the near future? 



#8 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Tue Jul 14, 2015 3:35 PM

Is there a chance of this being available for Linux in the near future? 

 

Sure!  We're concentrating on Windows and Mac at the moment, mostly because it is typical for those users to be unfamiliar with command-line environments and we want to make it easier for them.

 

Once we prepare the Mac one, setting the SDK for Linux should be easier, since most of the tools can be reused.

 

     -dZ.



#9 barnieg OFFLINE  

barnieg

    Moonsweeper

  • 386 posts
  • Location:Rugby, England

Posted Tue Jul 14, 2015 3:54 PM

In the meantime can the latest version of Intybasic be downloaded for Linux without the SDK?

 

 

 

Sure!  We're concentrating on Windows and Mac at the moment, mostly because it is typical for those users to be unfamiliar with command-line environments and we want to make it easier for them.

 

Once we prepare the Mac one, setting the SDK for Linux should be easier, since most of the tools can be reused.

 

     -dZ.



#10 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,559 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Tue Jul 14, 2015 4:00 PM

In the meantime can the latest version of Intybasic be downloaded for Linux without the SDK?

 

 

 

Yes, the new version of IntyBASIC is available also without the surroundings http://atariage.com/...irectors-cut-;/



#11 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Wed Jul 15, 2015 3:21 AM

By the way, I just wanted to remind everyone that IntyBASIC comes now in two flavours:  It's standard distribution, what Oscar calls The Director's Cut; and the Software Development Kit (SDK), which you can get at the top of this thread.

 

We believe the SDK includes many tools that streamline development for newcomers and power-users alike, and encourage anyone to get it.  However, the choice is yours, of course. :)

 

     -dZ.



#12 freewheel OFFLINE  

freewheel

    River Patroller

  • 2,861 posts

Posted Wed Jul 15, 2015 9:58 PM

While I don't do much development in Windows, I figured I'd check out the SDK. It won't let me change the installation path. Am I skipping a step? Also, is there a single  command for compile-and-run?

 

Or am I forecasting v1.1? :)



#13 Tarzilla OFFLINE  

Tarzilla

    Stargunner

  • 1,648 posts
  • Location:Alberta, Canada

Posted Wed Jul 15, 2015 11:19 PM

While I don't do much development in Windows, I figured I'd check out the SDK. It won't let me change the installation path. Am I skipping a step? Also, is there a single  command for compile-and-run?

 

Or am I forecasting v1.1? :)

 

Currently no step to change locations, it was designed for completely new users.

 

After install there are several intelligent batch files:

DZ-Jay is working on similar things for Mac, then Linux

INTYNEW
Creates a new IntyBASIC project in the “Projects” folder.

INTYBUILD
Compiles an IntyBASIC project source file and assembles the resulting Assembly Language code into a binary ROM file.

INTYRUN
Runs an IntyBASIC program ROM using the jzIntv emulator.  The debugger is disabled during execution.

INTYDBUG
Runs an IntyBASIC program ROM using the jzIntv emulator in “debug mode.” Program execution is halted while the debugger waits for user commands.

INTYTEST
Builds and runs a program by invoking the INTYBUILD and INTYDBUG tools in sequence.  Program execution is halted while the debugger waits for user commands.

INTYEXEC
Runs any Intellivision® program ROM using the jzIntv emulator.  The debugger is disabled during execution.  This tool is similar to INTYRUN except that it allows execution of any ROM, whether it is an IntyBASIC project or not.  It expects the name or path of a ROM file.

We did discuss a BuildandRun that fails if the errorlevel returned by the compiler is none zero, but I don't remember what we actually decided on....

And for sure there are more handy features coming

 


Edited by Tarzilla, Wed Jul 15, 2015 11:20 PM.


#14 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Thu Jul 16, 2015 3:16 AM

While I don't do much development in Windows, I figured I'd check out the SDK. It won't let me change the installation path. Am I skipping a step

 
In the current edition, I encountered initially a limitation in setting the environment so we hard-wired the path to go to the user profile's "Documents" folder.  Eventually, that limitation was lifted and we set the environment differently, but the path was never altered to be customizable.
 
I guess we could do that in the next version. :)
 

Also, is there a single command for compile-and-run?

 

 

Yes there is. :)  It's called INTYTEST, but it invokes the debugger directly, so execution is halted until you enter "R" at the debugger prompt to run the emulation.

 

I didn't want to include multiple variations of the same script so many times that confuses everybody, so I left it at that:  you either "build" then "run," or you "test" which means you are debugging your program.

 

In the next version, I could make "INTYTEST" and "INTYDBUG" accept a command line option to not halt the emulation but still enable the debugger.

 

Any other ideas will be welcome, but I want to stay away from adding more similar-but-ambiguously-different tools like "RUN," "EXEC," "TEST," "DBUG." ;)


Edited by DZ-Jay, Thu Jul 16, 2015 3:23 AM.


#15 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Thu Jul 16, 2015 4:02 AM

 
In the current edition, I encountered initially a limitation in setting the environment so we hard-wired the path to go to the user profile's "Documents" folder.  Eventually, that limitation was lifted and we set the environment differently, but the path was never altered to be customizable.
 
I guess we could do that in the next version. :)

 

OK, this change is ready and tested for the next release.  It was an oversight after the initial struggle. :)

 

      -dZ.



#16 freewheel OFFLINE  

freewheel

    River Patroller

  • 2,861 posts

Posted Thu Jul 16, 2015 7:02 AM

Hey, don't write stuff for me (I am very unlikely to use these scripts due to OS dependencies) ;) I just wondered if I wasn't paying attention.

 

I may be wrong on this one, but if we're trying to lower the barrier to entry, I'd think "build-and-run" would be much more commonly used than "build, run, and debug". Not many newbie programmers that I know of sit in a debugger on a regular basis, but they do run their program after every change. I think we may be talking about 2 different classes of newbies though.



#17 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Thu Jul 16, 2015 7:03 AM

Hey, don't write stuff for me (I am very unlikely to use these scripts due to OS dependencies) ;) I just wondered if I wasn't paying attention.

I may be wrong on this one, but if we're trying to lower the barrier to entry, I'd think "build-and-run" would be much more commonly used than "build, run, and debug". Not many newbie programmers that I know of sit in a debugger on a regular basis, but they do run their program after every change. I think we may be talking about 2 different classes of newbies though.


I'm curious to know, which OS dependencies are you talking about?

#18 freewheel OFFLINE  

freewheel

    River Patroller

  • 2,861 posts

Posted Thu Jul 16, 2015 7:06 AM

I'm curious to know, which OS dependencies are you talking about?

 

Not sure if serious? Windows.



#19 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Thu Jul 16, 2015 7:15 AM

Not sure if serious? Windows.


Ah! That. Hehehe.. :lol:

I thought you meant some weird or unnatural dependencies in the tool scripts -- apart from the unholy Microsoft spawn. :rolling:

In any case, your suggestion was very good and I'll switch it in the next release: halting emulation will be a command-line option.

Thanks!
dZ.

#20 carlsson OFFLINE  

carlsson

    River Patroller

  • 3,996 posts
  • Location:Västerås, Sweden

Posted Thu Jul 16, 2015 10:50 AM

Dumb question, but which file extentions do people usually associate IntyBASIC programs with? I suppose .BAS is obvious, but are there other extentions as well?



#21 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,559 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Thu Jul 16, 2015 10:53 AM

Dumb question, but which file extentions do people usually associate IntyBASIC programs with? I suppose .BAS is obvious, but are there other extentions as well?


I only have used BAS in all my programs.

#22 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,709 posts
  • Busy bee!
  • Location:North, England

Posted Thu Jul 16, 2015 11:13 AM

Dumb question, but which file extentions do people usually associate IntyBASIC programs with? I suppose .BAS is obvious, but are there other extentions as well?


I don't think it matters what you use for your own use. However, if you want to attach your code to AA posts then the forum's parser only accepts certain file extensions and *.bas is one of them.

#23 freewheel OFFLINE  

freewheel

    River Patroller

  • 2,861 posts

Posted Thu Jul 16, 2015 6:29 PM

Ah! That. Hehehe.. :lol:

I thought you meant some weird or unnatural dependencies in the tool scripts -- apart from the unholy Microsoft spawn. :rolling:
 

 

Newp :) I haven't looked terribly closely but I assume they're basically .bat files. Should work damn near everywhere - and I bet it'd work in many/most Linux installs, right out of the box via Wine. While I haven't actually tried it, I haven't seen anything unusual in any of these executables that would preclude that.

 

I did have one question/suggestion - using .ls for the assembler output... is that a standard thing? I've always used .lst for stuff like this, and I find that people commonly have .lst associated to a text reader in their setup already. That may not be so true for the non-geeks among us, I'm not sure.

 

I do want to spend some time poring over this constants list. You guys have come up with some I didn't think of. And while I don't typically use constants (I end up doing fancy tricks with the math anyway), a handy reference sheet like this is pure gold. Also these functions look neat! This is all the new 1.1 stuff I imagine. Stuff like this can be easily developed into a "standard library" of IntyBASIC functions. One thing I have in EVERY program is a reset_sprites function. It calls the same thing as you have here, across all 8 MOBs. It's just so handy to not sit and think about what MOBs are being drawn when you change screens etc. I call it virtually every time I do a CLS. I also use a crude input debouncing routine everywhere, shamelessly ripped from something intvnut posted a while back. If we could come up with a general-purpose function for that, I bet it would help a lot of people.



#24 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • Topic Starter
  • 9,767 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Thu Jul 16, 2015 7:51 PM

 

Newp :) I haven't looked terribly closely but I assume they're basically .bat files. Should work damn near everywhere - and I bet it'd work in many/most Linux installs, right out of the box via Wine. While I haven't actually tried it, I haven't seen anything unusual in any of these executables that would preclude that.

 

I did have one question/suggestion - using .ls for the assembler output... is that a standard thing? I've always used .lst for stuff like this, and I find that people commonly have .lst associated to a text reader in their setup already. That may not be so true for the non-geeks among us, I'm not sure.

 

I do want to spend some time poring over this constants list. You guys have come up with some I didn't think of. And while I don't typically use constants (I end up doing fancy tricks with the math anyway), a handy reference sheet like this is pure gold. Also these functions look neat! This is all the new 1.1 stuff I imagine. Stuff like this can be easily developed into a "standard library" of IntyBASIC functions. One thing I have in EVERY program is a reset_sprites function. It calls the same thing as you have here, across all 8 MOBs. It's just so handy to not sit and think about what MOBs are being drawn when you change screens etc. I call it virtually every time I do a CLS. I also use a crude input debouncing routine everywhere, shamelessly ripped from something intvnut posted a while back. If we could come up with a general-purpose function for that, I bet it would help a lot of people.

 

I'm used to ".lst" also and didn't realized that I had made the command line generate it as ".ls".  Hmmm... Not that it matters, but I'll change that in the next version.

 

Thanks for that.

 

     -dZ.



#25 freewheel OFFLINE  

freewheel

    River Patroller

  • 2,861 posts

Posted Thu Jul 16, 2015 9:25 PM

 

I'm used to ".lst" also and didn't realized that I had made the command line generate it as ".ls".  Hmmm... Not that it matters, but I'll change that in the next version.

 

 

Yeah, the only real reason it matters (well, beyond my OCD hatred for 2 letter file extensions) is for application association. Which makes me wish Windows had an ability to set a "associate this file extension with the user's chosen text editor". .bas, .lst, and .asm files would be perfect to set up that way (I believe .bas already is by default). Perfect for people who are learning to dabble in this stuff but who don't necessarily want to be trapped with Notepad.

 

What DO people typically use these days? Notepad++?






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users