Jump to content
IGNORED

IntyBASIC compiler v0.5


nanochess

Recommended Posts

Doodle Jump!! Cool!

 

It's nothing really. When you post an animated GIF image in AA, it will display a preview frame in the thread; you'll have to click it to open the image viewer to play the animation. That's the standard behaviour, even with your own post.

 

What we do is just type the magic words "

In Firefox and Chrome, the gifs I add to my posts don't show a preview frame - they animate all the time.

Obviously I am missing a step... What do I do?

Link to comment
Share on other sites

Well, just updated to IntyBASIC v0.6 with CONST statement support. It can be used this way:

CONST my_constant = $1234
CONST other_constant = 3*7/2

A = my_constant
B = other_constant

CONST should be declared before being used, otherwise IntyBASIC will take reference as non-defined variable.

 

Besides I've solved a bug in FOR STEP that happened if the TO value wasn't exact, like FOR A=1 TO 11 STEP 3

 

Finally I've added an example of MOB offset correction when using with SCROLL, check SCROLL.BAS example

Sounds great! I'll give it a try!

  • Like 1
Link to comment
Share on other sites

This may not be the right place to ask this but I do not understand the $ notation used in the intybasic programming like:

 

CONST my_constant = $1234

 

or

 

FOR X= 0 to 80

SPRITE 0,40+X + $600,20+$100,$0807

NEXT

 

when X=0 what is 40 + X + $600

 

Thanks. (I'm pretty sure once I understand this I will be unstoppable)

Link to comment
Share on other sites

This may not be the right place to ask this but I do not understand the $ notation used in the intybasic programming like:

 

CONST my_constant = $1234

 

or

 

FOR X= 0 to 80

SPRITE 0,40+X + $600,20+$100,$0807

NEXT

 

when X=0 what is 40 + X + $600

 

Thanks. (I'm pretty sure once I understand this I will be unstoppable)

 

The numbers starting with $ are hexadecimal numbers, base 16 instead of 10, you can use digits 0-9 and A-F.

 

The value $600 can be seen as 6*256+0*16+0 = 1536, so for X=0 the result would be 1576. In case of doubt you can use the calculator of your operating system, these always include hexadecimal mode.

 

In this case the value $600 is used to make sprite (MOB) visible and double-scale in X direction. The 40 is an adjustment (offset) inside the screen.

 

The following value $100 selects normal scale in Y direction.

 

Flags tend to be more understood in hexadecimal notation, $600 versus 1536 is more readable.

 

I hope this helps you :)

Link to comment
Share on other sites

yes, this is very helpful. I thought it was something like that and I was just getting to the hex/decimal/binary converter and found that 600 hex was 1100000000 and when I compared that to the MOB X register layout

13 12 11 10 9 8 7 6 5 4 3 2 1 0
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| ?? | ?? | ?? | X |VISB|INTR| X Coordinate |
| | | |SIZE| | | (0 to 255) |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+

a dim bulb started glowing. I was going to edit my post but you are darn fast.

 

(It's been almost thirty years since I have done anything that had to do with registers or bits or anything low level and then it was a cyber 730/760 octal based machine)

 

Thanks and please keep up the great work on Intybasic.

  • Like 1
Link to comment
Share on other sites

In Firefox and Chrome, the gifs I add to my posts don't show a preview frame - they animate all the time.

Obviously I am missing a step... What do I do?

 

Ah, scale it up, dear boy! I resize the image to 320x200 (at least), and the forum software will just display a thumbnail instead. Here's my process to make animated GIFs from jzIntv:

 

I. Make the movie file:

  • Play the ROM in jzIntv emulator
  • Press F-10 to start the movie recorder
  • Press F-10 again to stop the movie recorder
  • Quit jzIntv emulator

 

II. Convert the movie file to GIF:

  • From the command-line, use the "imvtogif" utility that comes with the SDK-1600, like this:
$ imvtogif mvi_0000.imv my_animated_gif.gif

III. Scale the image to proper resolution:

  • Open the resulting image file in GIMP image manipulating program (like Photoshop, but free).
  • Select from the menu Image > Scale Image
  • Set the Image Size:
Width:  320
Height: 200 (make sure the chain to the right is "unlinked" by clicking it.)
  • Alternatively, you can make it larger, but keep the same proportion:
Width:  600
Height: 400
  • Set the Quality:
Interpolation: None
  • Click the Scale button.

 

IV. Export to GIF file:

  • Select from the menu Filters > Animation > Optimize (for GIF)
  • Select from the menu File > Export
  • Type in a name for your animation file, making sure to add an extension of ".gif"
  • Click the Export button
  • From the Export Image as GIF window, make sure to select the following:
[ ] Interlace
[X] GIF comment:  Copyright (c) 2014 - Me, Myself, and I... bitch!
[X] As animation

[X] Loop forever

Delay between frames where unspecified: [100] milliseconds
Frame disposal where unspecified: [I don't care]

[ ] Use delay entered above for all frames
[ ] Use disposal entered above for all frames
  • Click the Export button

 

Et voilá! You have a nice, proportionally scaled, animated GIF. Plus, being a bit larger, the forum software will create a clickable thumbnail with a preview. Don't forget to add the magic words:

 

post-27318-0-23238800-1393929284_thumb.gif <-- Click to animate

 

 

P.S. It may look like a lot of steps, but once you do it the first time, you'll realize that's it's mostly a few clicks, and you're done. :)

 

-dZ.

  • Like 5
Link to comment
Share on other sites

"Let's do it - MY WAY!"

 

Here are some general purpose constants I've defined so far. They are "inspired" by Joe Z.'s gimini.asm file.

 

If we all use these same names, that would make life easy for me. :)

 

What do you think? Any strong opinions?

	

	CONST BACKTAB		= $0200
	CONST CS_GRAM		= $0800				' get picture from gram
	CONST CS_CARD		= $01f8				' gram or gram card number

	CONST MB_X_XPOS		= $00FF				' mask for x pos
	CONST MB_X_INTR		= $0100				' enable collision regs
	CONST MB_X_VIS		= $0200				' make mob visible
	CONST MB_X_XSIZE	= $0400				' double size in x

	CONST MB_Y_YPOS		= $007F				' mask for y pos
	CONST MB_Y_YRES		= $0080				' 16 bits in y
	CONST MB_Y_YSIZ2	= $0100				' double y size
	CONST MB_Y_YSIZ4	= $0200				' 4 times y size
	CONST MB_Y_YSIZ8	= $0300				' 8 times y size
	CONST MB_Y_XFLIP	= $0400				' flip picture in x
	CONST MB_Y_YFLIP	= $0800				' flip picture in y

	CONST MB_A_GRAM		= $0800				' get picture from gram
	CONST MB_A_CARD		= $07f8				' mask for picture no.
	CONST MB_A_PRIO		= $2000				' priority (above/below bkgnd)


REM colors for color stack, border, etc

	CONST C_BLK  = $0              ' Black
	CONST C_BLU  = $1              ' Blue
	CONST C_RED  = $2              ' Red
	CONST C_TAN  = $3              ' Tan
	CONST C_DGR  = $4              ' Dark Green
	CONST C_GRN  = $5              ' Green
	CONST C_YEL  = $6              ' Yellow
	CONST C_WHT  = $7              ' White
	CONST C_GRY  = $8              ' Grey
	CONST C_CYN  = $9              ' Cyan
	CONST C_ORG  = $A              ' Orange
	CONST C_BRN  = $B              ' Brown
	CONST C_PNK  = $C              ' Pink
	CONST C_LBL  = $D              ' Light Blue
	CONST C_YGR  = $E              ' Yellow-Green
	CONST C_PUR  = $F              ' Purple

rem colors for backtab or mob a
	CONST X_BLK  = $0              ' Black
	CONST X_BLU  = $1              ' Blue
	CONST X_RED  = $2              ' Red
	CONST X_TAN  = $3              ' Tan
	CONST X_DGR  = $4              ' Dark Green
	CONST X_GRN  = $5              ' Green
	CONST X_YEL  = $6              ' Yellow
	CONST X_WHT  = $7              ' White
	CONST X_GRY  = $1000           ' Grey
	CONST X_CYN  = $1001           ' Cyan
	CONST X_ORG  = $1002           ' Orange
	CONST X_BRN  = $1003           ' Brown
	CONST X_PNK  = $1004           ' Pink
	CONST X_LBL  = $1005           ' Light Blue
	CONST X_YGR  = $1006           ' Yellow-Green
	CONST X_PUR  = $1007           ' Purple
  • Like 4
Link to comment
Share on other sites

nanochess - THANK YOU for doing this! I've made several 2600 games using batari basic but my first gaming system was the Intellivision, so I can't wait to start playing around with this...

Excellent news! I've already bought your 2600 games and they're great, looking forward to seeing what you come up with for the Inty. Maybe a continuation of the series? :)

Link to comment
Share on other sites

nanochess - THANK YOU for doing this! I've made several 2600 games using batari basic but my first gaming system was the Intellivision, so I can't wait to start playing around with this...

 

I'm glad you like it and looking forward to your developments.

 

I've been impressed by the quality of your games :)

Link to comment
Share on other sites

Thanks guys! I've got to finish up DK Arcade 2600 first, then I'm thinking of a Night Stalker-like game with a scrolling maze...

Sounds good. Although having score/lives/etc. on screen while 4 way scrolling presents a challenge on the Inty. You might want to look at bump'n'jump for one style :-

 

 

Pay attention to the background just below the digits. Or Super Cobra for another style :-

 

 

Where the score etc. scrolls with the background.

 

Or Caverns one of my Mars Mini games :-

 

http://atariage.com/forums/topic/212069-mars-mini-games/

 

Where I use 4 sprites for the score.

 

Anyways... We can discuss all the pros and cons when you get going on the project ;).

  • Like 1
Link to comment
Share on other sites

What do you think? Any strong opinions?

If intvnut had no objections to their use then I'd rather use the names from gimini.asm (located in the 1600 SDK) but with '.' replaced with '_'. That way, if any BASIC developers move onto assembler they don't have to learn a whole new set of constants. I also think that the full names of colours would be better to e.g. X_DGR would become X_DARK_GREEN. But.... I'm not the target audience for the language so what do I know :lol:.

Link to comment
Share on other sites

If intvnut had no objections to their use then I'd rather use the names from gimini.asm (located in the 1600 SDK) but with '.' replaced with '_'. That way, if any BASIC developers move onto assembler they don't have to learn a whole new set of constants. I also think that the full names of colours would be better to e.g. X_DGR would become X_DARK_GREEN. But.... I'm not the target audience for the language so what do I know :lol:.

 

Also, that way, assembler developers would be able to move onto Basic development. ;)

Link to comment
Share on other sites

If intvnut had no objections to their use then I'd rather use the names from gimini.asm (located in the 1600 SDK) but with '.' replaced with '_'. That way, if any BASIC developers move onto assembler they don't have to learn a whole new set of constants. I also think that the full names of colours would be better to e.g. X_DGR would become X_DARK_GREEN. But.... I'm not the target audience for the language so what do I know :lol:.

 

For the record, I have no objection. Also, several years ago I moved that file into the public domain anyway.

 

I also have some macros in stic.mac that also define some constants, including much less compressed names for the colors. Have a look. That file also is in the public domain. For example, you can use the __CSTK.xxx names directly, or use the gen_cstk_card() macro in assembly. Of course, those names have "GRAM" and "GROM" baked into the symbol (eg. __CSTK.GRAM_DarkGreen) so it may not be the most user friendly in that form.

 

So, if someone wants to come up with a "common ground" header file for both IntyBASIC and assembly based on these, have at it. Plenty of free source material here to work with. :-)

 

EDIT: Grrr... AA doesn't let you attach files with the extension ".mac"? WTH?

gimini.asm

stic.mac.txt

Edited by intvnut
Link to comment
Share on other sites

Holy crap... Christmas Carole is an IntyBASIC game?! Man, this just keeps getting better and better. Think this compiler could make professional quality Intellivision games?

 

 

No, it isn't. dZ-Jay just used a Christmas Carol screen shot in his instructions on how to take screen shots. As I recall, it's built out of a version of his P-Machinery assembly language framework which he's described elsewhere.

 

I don't have any idea of whether IntyBASIC could scale to professional quality games, but I imagine it could and no reason to think it couldn't. There may be limits to the kinds of professional quality games you could make. It's usually easier to wring every last cycle out with assembly code, if you're good at such things, but not every great game requires that.

 

I leave it to nanochess and the IntyBASIC users to make a professional quality game happen. It looks like each new release has more neat stuff in it. Future's lookin' bright! :-)

 

Me? I'll be over here with my assembly code, 'cause I'm weird like that. ;-)

Edited by intvnut
  • Like 1
Link to comment
Share on other sites

 

 

No, it isn't. dZ-Jay just used a Christmas Carol screen shot in his instructions on how to take screen shots. As I recall, it's built out of a version of his P-Machinery assembly language framework which he's described elsewhere.

 

I don't have any idea of whether IntyBASIC could scale to professional quality games, but I imagine it could and no reason to think it couldn't. There may be limits to the kinds of professional quality games you could make. It's usually easier to wring every last cycle out with assembly code, if you're good at such things, but not every great game requires that.

 

I leave it to nanochess and the IntyBASIC users to make a professional quality game happen. It looks like each new release has more neat stuff in it. Future's lookin' bright! :-)

 

Me? I'll be over here with my assembly code, 'cause I'm weird like that. ;-)

 

 

Speaking of future....What in the world is your next game going to be, and when! You have been to quiet! :P :P :P

 

Im imagining Space Patrol 2 or something. Or Space Patrol vs Godzilla or something awesome!

 

Bueller?

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