Opry99er Posted December 9, 2015 Share Posted December 9, 2015 Can not WAIT to have some time to delve into this. 2 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted December 9, 2015 Share Posted December 9, 2015 Now you need some sprites wandering around, a maze, an objective, user control and its a programming contest entry . 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 9, 2015 Author Share Posted December 9, 2015 I love the freedom of labels vs line numbers. Can I run the SDK from a USB stick, no changes made to the host? I want to take this to work and play. 1 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted December 9, 2015 Share Posted December 9, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 9, 2015 Author Share Posted December 9, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted December 9, 2015 Share Posted December 9, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 9, 2015 Author Share Posted December 9, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 9, 2015 Share Posted December 9, 2015 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 10, 2015 Author Share Posted December 10, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 10, 2015 Share Posted December 10, 2015 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 10, 2015 Author Share Posted December 10, 2015 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. 2 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted December 10, 2015 Share Posted December 10, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 10, 2015 Author Share Posted December 10, 2015 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. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted December 10, 2015 Share Posted December 10, 2015 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 ... 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted December 10, 2015 Share Posted December 10, 2015 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! 2 Quote Link to comment Share on other sites More sharing options...
pimpmaul69 Posted December 10, 2015 Share Posted December 10, 2015 You know now that youre gaming, collecting and programming you are sliding deep down into the rabbit hole. Once youve gone so far there is no going back...... 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 10, 2015 Author Share Posted December 10, 2015 Okay fellas... Here's my 'game.' (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 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 10, 2015 Author Share Posted December 10, 2015 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... 1 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted December 10, 2015 Share Posted December 10, 2015 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". 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 11, 2015 Author Share Posted December 11, 2015 Still struggling to get a background in place and detect collisions. This design is very different from what I am used to!!! Studying the stic.txt file now as well as the example codes. Hopefully I will have a positive update soon. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 11, 2015 Author Share Posted December 11, 2015 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? Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 11, 2015 Author Share Posted December 11, 2015 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted December 11, 2015 Share Posted December 11, 2015 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. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 11, 2015 Share Posted December 11, 2015 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. Cool! Quote Link to comment Share on other sites More sharing options...
Opry99er Posted December 16, 2015 Author Share Posted December 16, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.