Jump to content
IGNORED

Hello World~!


Opry99er
 Share

Recommended Posts

I know the SDK sets up some environment variables but I can't remember what they are off the top of my head. You can make a "quick and dirty" development environment by having IntyBASIC.exe, as1600.exe, constants.bas and the prologue/epilogue assembly language files in the same directory as your source code.

  • Like 1
Link to comment
Share on other sites

Ill give it a shot. :)

 

I imagine I will need to unzip the directory directly onto the stick, maybe during the Install I can set preferences as to where it should unpack.

 

I'll give it a shot. Already have a game idea in mind. ;)

Yes, you can run from a memory stick, just make sure you have a backup plan (or several)

I have several projects that I use from a memory stick, usually stuff I'm prototyping or if I'm on a work computer that I don't want to install the SDK on...I lost the stick a week ago. Fortunately I always synch between my computer at work and the stick and my computer at home, so I didn't really lose anything. I also synch a copy of my folders at home to my Dropbox. Before the SDK came along, my method was to have IntyBASIC and the AS1600 in a folder with the game and graphics code. I had several .bat files to do compiling and running. If I ever upgraded versions I copied everything to a new folder then updated the tools so I could revert back. The SDK installation method is superior and a lot of work went into it to make it friendly, at least for PC users. ;)

  • Like 1
Link to comment
Share on other sites

Cool!!!

 

Still trying to get my commandline chops back... I am struggling tryibg to point the Command Module to the Hello directory for manipulation.

 

I'll get it... Just been years since I have used any kind of file directory system from the commandline. :)

 

If you installed the SDK, it defaults to the "My Documents" folder. It creates shortcuts for the Command Console that open directly in the SDK directory. From there, you should be able to do "CD <directory-name>" to enter a different directory.

 

Take a look at the included documentation in the SDK, there's a "Usage Guide" that shows you how to build and move around.

 

-dZ.

Link to comment
Share on other sites

Yea, I have read the docs pretty thoroughly. Good stuff in there. ;)

 

The issue I am having is CD syntax.

 

Another issue, my Thumb drive is drive E:, and for some reason the INTYxxx commands are not functioning. Once I get home I should be able to work with it. I was trting to run it off a stick, but I think the paths are looking in C:...Documents/.

 

No biggie... Juat a little test I was running. ;)

  • Like 1
Link to comment
Share on other sites

Yea, I have read the docs pretty thoroughly. Good stuff in there. ;)

 

The issue I am having is CD syntax.

 

Another issue, my Thumb drive is drive E:, and for some reason the INTYxxx commands are not functioning. Once I get home I should be able to work with it. I was trting to run it off a stick, but I think the paths are looking in C:...Documents/.

 

No biggie... Juat a little test I was running. ;)

 

 

Yeah, the paths are all hard-coded to "C:... Documents/". I fixed that in the next version of the SDK, but I never got around to releasing it, sorry. Let us know when you get home to try it, and we'll help you fix it so that you can run it off the thumbdrive. :)

 

-dZ.

Link to comment
Share on other sites

It is cool. I went ahead and unpacked to my C Drive on my work computer so I can play around. I will keep the .bas file and uninstall the SDK from my computer when I leave tonight. :)

 

Right now I am experimenting with text colors and screen locations. Going to try some keypad input here next. Maybe get some text to scroll around the screen on keypress.

 

Very cool development kit, fellas.

  • Like 2
Link to comment
Share on other sites

Make sure to read thru this forum, there is a lot of info and tips in all kinds of threads. Many of the older threads and game in progress threads contain a wealth of useful info as well as specific quirks that are addressed.

 

Like the simultaneous keypad and disc gotcha that has been discussed multiple times or how the 16 position disc is meant to be rolled around with the thumb rather than pressing cardinal 4 way or 8 way directions.

  • Like 1
Link to comment
Share on other sites

Ive got something working right now..

 

Will post when I get home.

 

 

So far in place:

 

-Player boundaries

 

-Player motion (cardinal directions only)

 

-Scoring engine (including color switching on score 'roll')

 

 

Currently you rack up points when you hit the bottom of the screen and you can move around the screen but cannot 'wrap'.

 

 

Looking for equivalent of GCHAR in TI BASIC which uses an X and Y coordinate to check what is in a particular screen location (space character or something else)

 

Will post ROM and source when I get home in an hour or two.

Link to comment
Share on other sites

Ive got something working right now..

 

Will post when I get home.

 

 

So far in place:

 

-Player boundaries

 

-Player motion (cardinal directions only)

 

-Scoring engine (including color switching on score 'roll')

 

 

Currently you rack up points when you hit the bottom of the screen and you can move around the screen but cannot 'wrap'.

 

 

Looking for equivalent of GCHAR in TI BASIC which uses an X and Y coordinate to check what is in a particular screen location (space character or something else)

 

Will post ROM and source when I get home in an hour or two.

I'm not familiar with the usage of GCHAR, but look inside the most current constants.bas (from the newest version if IntyBASIC,) there is a "useful functions" section for a start ...

  • Like 1
Link to comment
Share on other sites

 

Very cool development kit, fellas.

Most of the kudos have to go to the author of IntyBASIC: nanochess. Over the last year, his hard work and constant responsiveness to people like me has produced a wonderful rapid development tool (along with the companion tool IntyColor) that makes Intellivision programming a blast!

  • Like 2
Link to comment
Share on other sites

Okay fellas... Here's my 'game.' :lol: (for some reason, all my indentation is missing from the code box below.... hmmmmmmm)

 

Actually, it does nothing but allow you to move an X around the screen, collecting cheap points by running against the bottom of the screen. The color of the score changes when you roll it over 1000.

 

I am finding this dev kit to be nothing short of awesome. :)

 

 

 

 

Attached to this post is my zipped project file, including ROM, BIN, .bas source, etc.

 

 

 

Something to keep in mind, I am just playing around right now, so I do not have clear separation on my SUBs. Haven't even used any GOSUBs yet, but if I continue with this, I will likely break out the scoring engine into its own PROCEDURE, etc... For now though, I'm digging the feel of this BASIC. :) Hyper fast once compiled!

REM *************************************************************************
REM IntyBASIC Project: test2
REM *************************************************************************
REM     Programmer: <Opry99er>
REM     Created:    12/09/2015
REM     Updated:    12/09/2015
REM
REM     Project automatically generated by INTYNEW.
REM *************************************************************************
REM History:
REM 12/09/2015 - test2 project created.
REM *************************************************************************
 
REM Include useful predefined constants
INCLUDE "constants.bas"
WAIT
 
 
 
TITLE:
 
PRINT AT 45 COLOR 6,"GAME TEST"
 
TITLOOP:
 
IF CONT.BUTTON THEN GOTO TOP ELSE GOTO TITLOOP
 
 
 
REM Define variables for player locations (PX,PY) and score (SCO)
TOP:
 
PX=10 'player's x position
PY=5 'player's y position
#SCO=0 'player's score
SCCOL=1 'score color
 
 
CLS
 
 
REM Draw the player onscreen at the player locations (PX,PY)
RENDER:
PRINT AT SCREENPOS(PX, PY) COLOR 5,"X"
PRINT AT 3 COLOR SCCOL, <3>#SCO
WAIT
 
 
 
REM Check for "up" on the controller
CHKUP:
 
IF CONT.UP THEN PRINT AT SCREENPOS(PX, PY)," " ELSE GOTO CHKDOWN
PY=PY-1
IF PY<1 THEN PY=1
GOTO RENDER
 
 
 
REM Check for "down" on the controller
CHKDOWN:
 
IF CONT.DOWN THEN PRINT AT SCREENPOS(PX, PY)," " ELSE GOTO CHKRIGHT
PY=PY+1
IF PY>11 THEN PY=11:#SCO=#SCO+1:IF #SCO>999 THEN #SCO=0:SCCOL=SCCOL+1:IF SCCOL>8 THEN SCCOL=1
GOTO RENDER
 
 
REM Check for "right" on the controller
CHKRIGHT:
 
IF CONT.RIGHT THEN PRINT AT SCREENPOS(PX, PY)," " ELSE GOTO CHKLEFT
PX=PX+1
IF PX>19 THEN PX=19
GOTO RENDER
 
 
 
REM Check for "left" on the controller
CHKLEFT:
 
IF CONT.LEFT THEN PRINT AT SCREENPOS(PX, PY)," " ELSE GOTO CHKUP
PX=PX-1
IF PX<1 THEN PX=1
GOTO RENDER
 
 
 
 
 
GOTO CHKUP

test2.zip

  • Like 1
Link to comment
Share on other sites

I'm not familiar with the usage of GCHAR, but look inside the most current constants.bas (from the newest version if IntyBASIC,) there is a "useful functions" section for a start ...

 

GCHAR checks the indicated screen location and returns the ASCII value for the tile in that location into a variable. From there, you can check that variable in order to determine whether or not you wish to allow an action.

 

For instance

 

CALL GCHAR(10,5,X)

IF X=32 THEN...

.

.

 

If you are moving a player across the screen and want to check if the selected direction contains a non-navigable (or illegal) tile, GCHAR is most useful.

 

In this example, a returned value of '32' (which is the SPACE character) would likely be allowable, so your character can move in the direction specified.

 

 

Don't know if I explained that well...

  • Like 1
Link to comment
Share on other sites

To access the screen there is a special pre defined array called BACKTAB and that can be used with a constants.bas definition as follows :-

#what=#BACKTAB(SCREENPOS(X,Y))


or

#what=PEEK(SCREENADDR(X,Y))


The 16bit variable what will be: the card number*8, a flag indicating if the card comes from GROM/GRAM, its foreground colour, its background colour (in foreground/background mode). Look in the ..\IntyBASIC SDK\Documents\Tech folder in the SDK at a file called "stic.txt".

  • Like 1
Link to comment
Share on other sites

Intro.bas is pretty cool.... I really enjoyed watching that. :)

 

I would very much like to get a better sense of how BACKTAB works... I'm reading up on old threads in the programming thread to see what folks have experienced before.

 

I'm not using any SPRITEs in the demo above--the SPRITE syntax seems a bit strange to me.

 

 

If I'm understand this properly, the pre-defined cards reside on GROM (this would be letters, numbers, a few graphical oddities, etc) and any user-defined cards exist in GRAM.

 

Using DEF, one can define a graphic card, but the definition does NOT get assigned to a 'character code' or anything like that, so it would be impossible to have a GCHAR-type command which checks the character code of a tile in a screen location.

 

Instead, you must directly check the contents of BACKTAB to check if a MOB (or SPRITE) has collided with anything, other MOB or background pixel.

 

Am I on the right track here?

Link to comment
Share on other sites

Using DEF, one can define a graphic card, but the definition does NOT get assigned to a 'character code' or anything like that, so it would be impossible to have a GCHAR-type command which checks the character code of a tile in a screen location.

Each DEFxx corresponds to the hardware code in GRAM. It can be considered as an index into GRAM.

 

Instead, you must directly check the contents of BACKTAB to check if a MOB (or SPRITE) has collided with anything, other MOB or background pixel.

When you read BACKTAB you get the character code, a flag that says if its in GRAM/GROM and colour information. If you want the character code you have to mask that portion off. Suitable bitmasks are CS_CARD_DATA_MASK for colour stack mode or FGBG_CARD_DATA_MASK for foreground/background mode.

 

E.g. to detect GROM in colour stack cards:

poke SCREENADDR(0,0), CS_WHITE+(("1"-" ")* ' Display 1 in column 0 on row 0
poke SCREENADDR(0,1), CS_WHITE+(("2"-" ")* ' Display 2 in column 0 on row 1
#what=peek(SCREENADDR(0,0)) and CS_CARD_DATA_MASK
if #what = (("1"-" ")* then #BACKTAB(20) = CS_WHITE+(("3"-" ")*

And you should see :-

 

1

3

 

in the top corner of the display. To detect GRAM cards in colour stack mode you'd use something like :-

 

#what=peek(SCREENADDR(0,2)) and (GRAM+CS_CARD_DATA_MASK)
if #what = GRAM+(DEF01* then #BACKTAB(60) = CS_WHITE+(("5"-" ")*

You can use the collision variables COL0 to COL7 to detect sprite collisions. Sprites can collide with each other (but not themselves), cards in BACKTAB and the boundaries of the screen.

Link to comment
Share on other sites

Yea, I have read the docs pretty thoroughly. Good stuff in there. ;)

 

The issue I am having is CD syntax.

 

Another issue, my Thumb drive is drive E:, and for some reason the INTYxxx commands are not functioning. Once I get home I should be able to work with it. I was trting to run it off a stick, but I think the paths are looking in C:...Documents/.

 

No biggie... Juat a little test I was running. ;)

 

If you have spaces in the path, you must surround it with double-quotes. ;)

 

 

 

test2pic_zpssj03hxqc.png

 

Cool! :)

Link to comment
Share on other sites

Learning.... Assimilating.... Processing.....

 

 

Seems this BACKTAB is actually a GOOD thing as opposed to reading screen locations and obtaining character codes for IF THEN checks.

 

It is a map, so to speak!!

 

What is there does not have to be necessarily manipulated and read/compared constantly because it resides as a static 'world' of sorts....

 

Seemingly contrary to my experiences to date with programming arcade-style games in BASIC.

 

I am still reading and studying. I have a plan in the next month or two to try something. I will have many questions, I am sure.

 

Luckily, we have a good community here. :)

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

  • Recently Browsing   0 members

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