Jump to content
IGNORED

Introducing the IntyBASIC SDK


DZ-Jay

Recommended Posts

  • 1 month later...

I've recently downloaded the Windows version of 1.2.2. If I edit an existing game and then use INTYBUILD to compile it, everything works fine. However I created a new game with INTYNEW and when I set up my variables the way I always had, I am not able to compile because I get errors. it says "Error:variable not defined previously". I'm wondering if I have to do something different in this build to define the variables I want to use?

 

I should have added better description earlier. I usually put my games variables at the beginning of my code before I even do my title screen. It is right after the INCLUDE Constants. I was going to try to roll back to a previous version of IntyBasic SDK and see if that works. Just weird that the same code when created on an earlier version worked, but using the same code after creating a new game with INTYNEW in the 1.2.2 gives me this error.

 

VARIABLES:
    
#BAR=304
B=0

T=1

#SCORE=0

#LIVES=5

 

Edited by dalves
Link to comment
Share on other sites

11 hours ago, dalves said:

I've recently downloaded the Windows version of 1.2.2. If I edit an existing game and then use INTYBUILD to compile it, everything works fine. However I created a new game with INTYNEW and when I set up my variables the way I always had, I am not able to compile because I get errors. it says "Error:variable not defined previously". I'm wondering if I have to do something different in this build to define the variables I want to use?

 

I should have added better description earlier. I usually put my games variables at the beginning of my code before I even do my title screen. It is right after the INCLUDE Constants. I was going to try to roll back to a previous version of IntyBasic SDK and see if that works. Just weird that the same code when created on an earlier version worked, but using the same code after creating a new game with INTYNEW in the 1.2.2 gives me this error.

 

VARIABLES:
    
#BAR=304
B=0

T=1

#SCORE=0

#LIVES=5

 

 

Hi, @dalves,

 

That's probably because the later versions of the SDK "INTYNEW" command include the directive "Option Explicit" at the top, which is good programming practice.  This option requires variables to be declared before being used.  You can declare a variable with the "DIM" statement.

 

You can declare all the variables you wish to use at the top of your program and then you don't have to worry about it later.

 

The reason this is good programming practice is because it lets the compiler catch typos in variables.  Any variable that is not explicitly defined with a "DIM" statement, will result in an error.  For instance, if you define a variable called "positionX" but at some place you called it as "postionX" by mistake (notice the spelling), the compiler will catch it.  These sort of errors are extremely hard to catch visually because your brain tends to compensate for the missing letters if you are not looking for it.

 

You can find more information about the use of "DIM" and the "Option Explicit" directive in the IntyBASIC manual included in the "Documents" folder of the SDK.

 

    -dZ.

 

P.S.  If you really, really, really do not want this feature (which, as I say, promotes good programming practices), then you can always remove the line "Option Explicit" at the top of the source file created by "INTYNEW."  However, I sincerely do not recommend this.

 

Link to comment
Share on other sites

Thanks DZ. I added the DIM statements and everything is good. I'll have to get into the habit.

 

I was wondering if there are any minimum requirements for running the new 1.2.2 version. I have an old beater desktop running Windows XP (SP3) and 1.2.2 works perfect on it. My laptop recently died and I was trying to use an old one that is also Windows XP but (SP2). I installed Visual C++ 2008. When using INTYBUILD it says "as1600" has crashed. If I close out of the error, it finishes. If I use INTYRUN to launch the ROM, "jzintv" crashes. My guess is something on the old laptop is out of date, but not sure what in particular is causing the crashes.

Link to comment
Share on other sites

7 hours ago, dalves said:

Thanks DZ. I added the DIM statements and everything is good. I'll have to get into the habit.

 

I was wondering if there are any minimum requirements for running the new 1.2.2 version. I have an old beater desktop running Windows XP (SP3) and 1.2.2 works perfect on it. My laptop recently died and I was trying to use an old one that is also Windows XP but (SP2). I installed Visual C++ 2008. When using INTYBUILD it says "as1600" has crashed. If I close out of the error, it finishes. If I use INTYRUN to launch the ROM, "jzintv" crashes. My guess is something on the old laptop is out of date, but not sure what in particular is causing the crashes.

That is very odd.

 

Did you use the SDK installer?  I've been using Windows XP (SP3) to test the SDK for years, but didn't even think to test it with SP2.  Do you get any particular error message?

Link to comment
Share on other sites

11 hours ago, dalves said:

Thanks DZ. I added the DIM statements and everything is good. I'll have to get into the habit.

 

I was wondering if there are any minimum requirements for running the new 1.2.2 version. I have an old beater desktop running Windows XP (SP3) and 1.2.2 works perfect on it. My laptop recently died and I was trying to use an old one that is also Windows XP but (SP2). I installed Visual C++ 2008. When using INTYBUILD it says "as1600" has crashed. If I close out of the error, it finishes. If I use INTYRUN to launch the ROM, "jzintv" crashes. My guess is something on the old laptop is out of date, but not sure what in particular is causing the crashes.

I can say for sure that SP2 has some subtle bugs, you should update it to SP3.

 

Link to comment
Share on other sites

  • 3 weeks later...
43 minutes ago, CrazyBoss said:

Maybe I should try this :) I still use homecreated batch files, that will do all the tasks and fire up jzintv if it didn fail, It even check for overflow of the dataareas, and suggest where to put the "org" statement in the code :)

 

 

You should give it a try -- the building and run scripts are rather comprehensive, and the environment is set up in a nice and organized way so that you don't have to fiddle with anything.  Your overflow check sounds like a nice addition, so if you give me some details, I could incorporate it into the next version of the SDK.

 

    -dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

  • 2 months later...
47 minutes ago, NeoNZJ_Slayer said:

I have to check this out and see if I have anything around I can port and try on the Intellivision.

By all means, do!  The IntyBASIC community has grown considerably in the past few years.  A contest just finished in which several entries were submitted, most of them of substantial quality and production values.  Your project can be the next IntyBASIC masterpiece.

 

And just to be clear, IntyBASIC is not your regular 8-bit microcomputer BASIC -- it is a compiled language that generates fast and efficient assembly code, and offers many facilities that ease access to the hardware.

 

Feel free to post any questions you may have in the programming forum.  There are plenty of knowledgeable people willing to help out. :)

 

     -dZ.

Link to comment
Share on other sites

  • 1 month later...

thanks again DZ for turning me onto the SDK.

 

It has made things so much faster and smoother development wise.  I can make a quick change and test it with 2 keystrokes now.  I'm sure the debug mode will pay dividends soon...I'm almost ready to start working on the meat of the project.

Link to comment
Share on other sites

1 minute ago, Mik's Arcade said:

thanks again DZ for turning me onto the SDK.

 

It has made things so much faster and smoother development wise.  I can make a quick change and test it with 2 keystrokes now.  I'm sure the debug mode will pay dividends soon...I'm almost ready to start working on the meat of the project.

 

Great!  I'm glad it works for you.  If you have any suggestions for improvements, feel free to post them here.  Also, I'm planning a new release as soon as the next IntyBASIC version comes out.  A guide on how to use the debugger on IntyBASIC programs is in the plans, along with a few new features.

 

    -dZ.

  • Like 2
Link to comment
Share on other sites

  • 7 months later...
Just now, Mik's Arcade said:

My laptop is bothering me to upgrade to Windows 11.

 

Will the IntyBasic SDK still run on it? Anyone know

 

I haven't tried it over here ... I only have XP, and it's under emulation.

 

   dZ.

Link to comment
Share on other sites

  • 9 months later...

I need help... I have completed all the steps as described in "IntyBASIC Software Development Kit Installation Guide". I even pasted the folder "SDL.framework" into both libraries (Macintosh HD/Library/Frameworks and Macintosh HD/System/Library/Frameworks ... because I could not understand which of the two libraries it was!), but when I dgt "gointy" this is the answer: "zsh: command not found: gointy".

Where I'm doing wrong???!?!?!?

Thanks, F.

 
Link to comment
Share on other sites

On 9/25/2022 at 1:06 PM, fotomotoloto said:

I need help... I have completed all the steps as described in "IntyBASIC Software Development Kit Installation Guide". I even pasted the folder "SDL.framework" into both libraries (Macintosh HD/Library/Frameworks and Macintosh HD/System/Library/Frameworks ... because I could not understand which of the two libraries it was!), but when I dgt "gointy" this is the answer: "zsh: command not found: gointy".

Where I'm doing wrong???!?!?!?

Thanks, F.

 

 

Hi, there,

 

It seems you are running Terminal with the “zsh” shell.  You should check the configuration properties of the Terminal app to switch it to “bash.”  (I thought the Bash shell was the default.)

 

Part of the set up instruction include steps to copy the profile configuration file to your user home folder.  But that profile, which includes the “gointy” shortcut command, is for the Bash shell.  

 

If you need more help, just send me a PM, and I’ll walk up through the set up.

 

    dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Excuse me DZ-Jay! I've only seen your answers now! I changed my approach ... now I'm trying to follow Oscar Toledo's book and I've almost managed to complete chapter 1, but the error message that pops up is in the last step is: 
dyld: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2

  Referenced from: /Users/antoniolotorto/Documents/intybasic/./jzintv

  Reason: image not found

Abort trap: 6

 

I think the sdl.dll library that i placed in the "intybasic" folder is wrong...

Thanks for your kindness, Fotomotoloto

 

 

intybasic_folder.jpeg

Link to comment
Share on other sites

  • 1 month later...
20 hours ago, fotomotoloto said:

Hi DZ-Jay, excuse me, but I've one question for you: I wanted to know if it is possible to get a .bas file from a .rom or .bin file?! How else can you get the code?

Thank you very much, F.

 

Unfortunately, what you are asking for is not possible -- not in any simple or straightforward way.  You see, the IntyBASIC compiler converts the BASIC source code into an assembly language file, and then the as1600 assembler turns that into a binary ROM or BIN file.  This translation goes only in one way.

 

In other words, you can always convert a valid source code file into a binary file (that's what the compiler and assembler do); but once it's there, you cannot convert it back.  You could use a "disassembler" tool, which will attempt to translate the binary code into assembly language -- but sometimes this is not very useful, since you do not get the original source code, what you get is a functional approximation which is probably not how it was originally expressed.  Still, this only gets you to the "assembly language" step; you will still need to figure out how to decode some BASIC code from it.

 

Let me give you an example of what I mean.  Suppose you write the following simple statement in IntyBASIC:

PRINT "Hello World!"

 

There is no such thing as a "PRINT" code in the CPU's machine language.  All it knows to do is to move memory from one location to another, perform some basic arithmetic, compare values, and jump around in the code stream.

 

However, the IntyBASIC compiler knows this, so it converts the "PRINT" statement into a series of instructions that the CPU can understand, which are mostly things like,

  • Point to the first byte in the string
  • Convert that into a usable data format to display on the screen
  • move that value to the current pointer in the BACKTAB
  • Advance the pointers
  • Repeat for each of the characters in the string.

 

The above is merely a simplification.  The actual machine code is a lot more terse.

 

As you can see, you can't really go from that series of instructions back to "PRINT," because that notion was lost in translation.  So even if you were to disassemble the binary into assembly, and then decode that into IntyBASIC, you'll probably just get a couple of PEEK and POKE instructions to read and write stuff to memory, a few IF statements to check if we're done with all characters, and a bunch of GOTOs.

 

The result will do exactly the same as the PRINT statement, but won't give you much indication of what it actually is accomplishing.  In other words, you won't be able to easily tell that it is the code to print a string.

 

Anyway, all that being said, what are you trying to accomplish?  Perhaps there's some confusion and there may be some way to get what you are looking for.

 

      -dZ.

Edited by DZ-Jay
  • Like 1
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...