Jump to content
IGNORED

Introducing the IntyBASIC SDK


DZ-Jay

Recommended Posts

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 & Mac OS X

 

post-27318-0-85287200-1436873622.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:

  • Support for both Windows and Mac OS X computers
  • An easy-as-pie Installer Wizard for Windows that will set everything up in your workstation
  • Very simple installation instruction for Mac computers to get you going quickly
  • The latest, bleeding-edge version of IntyBASIC 1.4.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.

 

post-27318-0-45005600-1436873628_thumb.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 or Mac 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.2.2 - August/24/2020

  • Updated to the latest version of IntyBASIC distribution (1.4.2).
  • Updated to the latest version of the SDK-1600 binary tools (2020-08-22).
  • Emulator now uses SDL2.
  • Emulator can now run ECS-enabled programs with newly included "miniecs.bin" ROM.
  • Updated contributions & example projects with latest versions and new programs.
  • Updated tools documentation to reflect all changes and correct typographical errors.
  • Rebuilt all samples and contribution programs with the latest tools.
  • ... and more!

 

 

Download

 

Previous Releases

 

 

Edited by DZ-Jay
Updated to the latest version (v1.2.2)
  • Like 21
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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. :)

  • Like 1
Link to comment
Share on other sites

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.

 

https://www.youtube.com/watch?v=Wf3memxrNfg

 

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.

 

 

 

 

 

  • Like 8
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

 

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.

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 3
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

 

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.

  • Like 1
Link to comment
Share on other sites

 

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++?

Link to comment
Share on other sites

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...