+Tarzilla Posted September 26, 2014 Share Posted September 26, 2014 Looking for a way to learn INTYBasic? One of the ways to quickly get something pretty up on the screen is to use the INTYColor utility included with the newer versions. I have been working on this for awhile, mostly for my own purposes, but here is a step by step walkthru on how to create a screen compatible with Nanochess's wonderful tool. IntyColor Tutorial v1.pdf 6 Quote Link to comment Share on other sites More sharing options...
Cybearg Posted September 26, 2014 Share Posted September 26, 2014 I saw this posted earlier and skimmed through it. Looks great! Thanks much for writing it out! I always wondered what IntyColor was for. Quote Link to comment Share on other sites More sharing options...
+nanochess Posted September 28, 2014 Share Posted September 28, 2014 Looking for a way to learn INTYBasic? One of the ways to quickly get something pretty up on the screen is to use the INTYColor utility included with the newer versions. I have been working on this for awhile, mostly for my own purposes, but here is a step by step walkthru on how to create a screen compatible with Nanochess's wonderful tool. Pretty cool tutorial! Thanks for your effort Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted September 28, 2014 Author Share Posted September 28, 2014 Looking for a way to learn INTYBasic? One of the ways to quickly get something pretty up on the screen is to use the INTYColor utility included with the newer versions. I have been working on this for awhile, mostly for my own purposes, but here is a step by step walkthru on how to create a screen compatible with Nanochess's wonderful tool. Apparently I forgot the .zip file IntyColorTutorial.zip 3 Quote Link to comment Share on other sites More sharing options...
vprette Posted October 29, 2014 Share Posted October 29, 2014 (edited) Hello thanks for the tutorial I need help: If I just use the .bas source produced in the example, and after that I add some PRINT PRINT AT 0 COLOR 7,"Welcome human"PRINT AT 40 COLOR 7,"Play versus"PRINT AT 60 COLOR 7,"Intellivision" I obtain unwanted characters with balck background: what do I do to PRINT message over the background? Edited October 29, 2014 by vprette Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted October 29, 2014 Author Share Posted October 29, 2014 Hello thanks for the tutorial I need help: If I just use the .bas source produced in the example, and after that I add some PRINT PRINT AT 0 COLOR 7,"Welcome human" PRINT AT 40 COLOR 7,"Play versus" PRINT AT 60 COLOR 7,"Intellivision" I obtain unwanted characters with balck background: what do I do to PRINT message over the background? You are seeing a limitation of Mode 1 Foreground Background mode. You lose the lower case character set. Change the text PRINT AT 0 COLOR 7,"WELCOME HUMAN" PRINT AT 40 COLOR 7,"PLAY VERSUS" PRINT AT 60 COLOR 7,"INTELLIVISION" Color Stack mode doesn't have this limitation, but I find F/B mode easier to create screens with. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted October 29, 2014 Author Share Posted October 29, 2014 I obtain unwanted characters with balck background: what do I do to PRINT message over the background? The color parameter is confusing because it simply sends the value to the STIC. It assumes you understand how the color parameter is formed, where from a high level a programmer might expect something more like this: Print at 20, color 2,4, "Test" where 2 is the foreground color and 4 is the background color. Instead you have to use bitwise addition to set both foreground and backgound colors in one number. I'm just heading into a meeting so if Nanochess or others don't chime in I'll respond later tonight. Quote Link to comment Share on other sites More sharing options...
Cybearg Posted October 29, 2014 Share Posted October 29, 2014 IntyMapper can be used to get the values you want as well as to see how tiles will look in FGBG and Color Stack modes. Quote Link to comment Share on other sites More sharing options...
freewheel Posted October 30, 2014 Share Posted October 30, 2014 Seconded. Even if you don't use it for screen design, IntyMapper is a GREAT reference tool to remind you of what you can use in each graphics mode - in terms of what cards are available, and what colors can be used with each. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted October 30, 2014 Author Share Posted October 30, 2014 In a pinch you can also use this http://knox.ac.free.fr/inty_workshop/ 3 Quote Link to comment Share on other sites More sharing options...
Cybearg Posted October 30, 2014 Share Posted October 30, 2014 In a pinch you can also use this http://knox.ac.free.fr/inty_workshop/ Wish I would have known about that! Then I wouldn't of had to make SpriteAid! Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted October 30, 2014 Author Share Posted October 30, 2014 Wish I would have known about that! Then I wouldn't of had to make SpriteAid! Before IntyBasic came out I started down the road of pure assembler (and basically read every thread in the Intellivision Programming sub forum and in the Yahoo group) Somewhere in there was this link. Between it and Paint.net/ IntyColor I've not felt the need to create any of my own tools (which I normally would have plus learning the STIC and using Constant statements for various color and MOB parameters helps too) Now if Intycolor had the option to convert tiles to BITMAP statements instead of just DATA, this add-on for Paint.Net would be really handy. 1 Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 17, 2023 Share Posted September 17, 2023 (edited) Hi, I have been looking at the INTYColor Tutorial. Could someone please explain to me the difference between screen_bitmaps_0: and screen_cards: that have been generated by the tool? Many thanks! Edited September 17, 2023 by Alkadian Quote Link to comment Share on other sites More sharing options...
Kiwi Posted September 17, 2023 Share Posted September 17, 2023 screen_bitmap_0: are your tilesets Since you can only load 16 cards/tiles before a wait, it will show more screen_bitmap_1 up to screen_bitmap_3. screen_cards: is the name table/backtab for the tiles placed on screen. 1 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 18, 2023 Share Posted September 18, 2023 11 hours ago, Kiwi said: screen_bitmap_0: are your tilesets Since you can only load 16 cards/tiles before a wait, it will show more screen_bitmap_1 up to screen_bitmap_3. screen_cards: is the name table/backtab for the tiles placed on screen. Just to add, you use DEFINE to load the bitmaps, and you use SCREEN load the cards. I believe one of the books walks you through an example of how to draw graphics and use IntyColor to render them on the screen. dZ. 1 1 Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 18, 2023 Share Posted September 18, 2023 (edited) Thanks both of you. Sorry for being thick. I understand that, for the specific example in the tutorial, INTYcolor generates the following 7 bitmaps in total that are loaded into GRAM with the DEFINE statement: DATA $0100,$0D07,$1F1F,$FF7F DATA $76E0,$BA6F,$F7CD,$FFFF DATA $0000,$0000,$0100,$0303 DATA $0701,$3F1F,$FF7F,$FFFF DATA $0707,$0707,$1F0F,$FF3F DATA $FFFF,$E3EF,$CBC1,$FFF7 DATA $F7FF,$E1F3,$C1E3,$F7E3 I also understand that for example for the first card/tile: DATA $0100,$0D07,$1F1F,$FF7F is equivalent to: BITMAP "........" BITMAP ".......x" BITMAP ".....xxx" BITMAP "....xx.x" BITMAP "...xxxxx" BITMAP "...xxxxx" BITMAP ".xxxxxxx" BITMAP "xxxxxxxx" Then the SCREEN statement copies a full screen of 20x12 cards by using the label screen_cards to point to the data below screen_cards: DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1A07,$1A0F,$1200,$1A07,$1A0F,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1A07,$1A0F,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1A07,$1A0F,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1A16,$1A1E DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1A07,$1A0F DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1A26,$2400 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1A16,$1A1E,$282E,$2400 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1A26,$2400,$2400,$2400 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1A16,$1A1E,$2400,$282E,$2400,$2400 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1A26,$2836,$2400,$2400,$2836,$2400 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1A16,$1A1E,$2400,$2400,$2400,$2400,$2400,$2400 This is where I get lost. I can see that every two rows of data represent a row of 20 cards for a total of 12 rows in total on the screen, but I don't fully understand the meaning of these hex numbers. For example, what does $1200 mean or refer to? I thought that screen is composed of combination of those 7 cards/tiles. Thanks a lot! Edited September 18, 2023 by Alkadian Quote Link to comment Share on other sites More sharing options...
YannAros Posted September 18, 2023 Share Posted September 18, 2023 Hi, You have to understand the meaning of the STIC internal registers. There is a good documentation here : http://wiki.intellivision.us/index.php?title=STIC And this tool helps to build up the register content : http://knox.ac.free.fr/inty_workshop/ (go to BACKTAB tab) In you case $1200 comes from : - FG/BG mode - Foreground color : 0 - Background color : 9 - Card : 0 1 Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 18, 2023 Share Posted September 18, 2023 (edited) 50 minutes ago, YannAros said: Hi, You have to understand the meaning of the STIC internal registers. There is a good documentation here : http://wiki.intellivision.us/index.php?title=STIC And this tool helps to build up the register content : http://knox.ac.free.fr/inty_workshop/ (go to BACKTAB tab) In you case $1200 comes from : - FG/BG mode - Foreground color : 0 - Background color : 9 - Card : 0 Thanks for clarifying. The second tool is great! There is still something that I don't get (sorry I am still trying to get my head around many concepts). $1200 = 00010010 00000 000 (Foreground colour =0) (Card number =0) (GROM =0) (Background colour = $1001 = 9) So far so good, but card 0 is not the one defined by: DATA $0100,$0D07,$1F1F,$FF7F On the screen card 0 looks like and empty card. Sorry for the confusion Thanks! Edited September 18, 2023 by Alkadian Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 18, 2023 Share Posted September 18, 2023 14 minutes ago, Alkadian said: Thanks for clarifying. The second tool is great! There is still something that I don't get (sorry I am still trying to get my head around many concepts). $1200 = 00010010 00000 000 (Foreground colour =0) (Card number =0) (GROM =0) (Background colour = $1001 = 9) So far so good, but card 0 is not the one defined by: DATA $0100,$0D07,$1F1F,$FF7F On the screen card 0 looks like and empty card. Sorry for the confusion Thanks! You got your own answer right there: it is card #0 from GROM. If you look at the layout of the cards built into the Graphics ROM, you will see that card #0 is the empty space -- that is, all zeros all the way. http://wiki.intellivision.us/index.php/Graphics_ROM The bitmaps that IntyColor generated are for additional custom cards for Graphics RAM (GRAM). Your scene is built with a combination of cards from the built in set in GROM as well as the custom cards in GRAM. dZ. 1 Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 18, 2023 Share Posted September 18, 2023 (edited) Oh dear! Thanks a lot for pointing that out! So if I understood correctly, for example at the card position 21 on the screen we are using card #0 from the GRAM. Is that correct, please? screen_cards: DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1A07,$1A0F,$1200,$1A07,$1A0F,$1200,$1200,$1200,$1200 Thanks! Edited September 18, 2023 by Alkadian Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 18, 2023 Share Posted September 18, 2023 For additional context and clarity, Intellivision graphics are character-based: all graphics (screen and sprites) are composed of individual 8x8 pixel character blocks. These characters are typically called "pictures," because they are glyphs that can represent generically either graphical elements or text. The Intellivision supports two main classes of character definitions: those statically and permanently stored internally in ROM (called Graphics ROM or GROM), and those dynamically defined in RAM (called Graphics RAM or GRAM). There are 256 GROM cards, which include a combination of the text character fonts, some basic geometric shapes such as lines and triangles, and even a bit of random garbage. (These last ones are technically not pictures, but the designers stole a bit of space from GROM to store part of the built-in operating system when it overflowed. Still, it is data stored in GROM and addressable like any other picture, so ...) Likewise, there are 64 slots for custom pictures in GRAM. They can be changed, in whole or in part, at any point by your program using the DEFINE statement (which will be buffered until the next VBLANK interrupt). These are all the pictures available to your program, no more. There are no individual pixels that can be addressed, nor run-time drawing routines. All graphics for screens and sprites must be composed of these. There are some restrictions on the GROM cards available in some color modes, but in general that is it. The cruel irony to the programmer is that the BACKTAB has 240 cards, but GRAM can only contain a fraction of that at any one time. This means you need to plan for reuse, and be creative, which is not really a bad thing. I hope this helps. dZ. 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 18, 2023 Share Posted September 18, 2023 9 minutes ago, Alkadian said: Oh dear! Thanks a lot for pointing that out! So if I understood correctly, for example at the card position 21 on the screen we are using card #0 from the GRAM. Is that correct, please? screen_cards: DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200,$1200 DATA $1200,$1A07,$1A0F,$1200,$1A07,$1A0F,$1200,$1200,$1200,$1200 Thanks! Correct-o-mondo!!! Trust me, it gets better once you wrap these things around your brain. dZ. 1 Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 18, 2023 Share Posted September 18, 2023 5 minutes ago, DZ-Jay said: For additional context and clarity, Intellivision graphics are character-based: all graphics (screen and sprites) are composed of individual 8x8 pixel character blocks. These characters are typically called "pictures," because they are glyphs that can represent generically either graphical elements or text. The Intellivision supports two main classes of character definitions: those statically and permanently stored internally in ROM (called Graphics ROM or GROM), and those dynamically defined in RAM (called Graphics RAM or GRAM). There are 256 GROM cards, which include a combination of the text character fonts, some basic geometric shapes such as lines and triangles, and even a bit of random garbage. (These last ones are technically not pictures, but the designers stole a bit of space from GROM to store part of the built-in operating system when it overflowed. Still, it is data stored in GROM and addressable like any other picture, so ...) Likewise, there are 64 slots for custom pictures in GRAM. They can be changed at any point by your program using the DEFINE statement (which will be buffered until the next VBLANK interrupt). These are all the pictures available to your program, no more. All graphics for screens and sprites must be composed of these. There are some restrictions on the GROM cards available in some color modes, but in general that is it. I hope this helps. dZ. @DZ-Jay, many thanks for these additional clarifications. Very, very helpful indeed! Thanks again a ton for finding the time and patience to provide me with so valuble and clear information. I am writing all of it on my notebook! I am so happy Quote Link to comment Share on other sites More sharing options...
Alkadian Posted September 18, 2023 Share Posted September 18, 2023 8 minutes ago, DZ-Jay said: Correct-o-mondo!!! Trust me, it gets better once you wrap these things around your brain. dZ. Excellent, many thanks for confirming! Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 18, 2023 Share Posted September 18, 2023 Just now, Alkadian said: @DZ-Jay, many thanks for these additional clarifications. Very, very helpful indeed! Thanks again a ton for finding the time and patience to provide me with so valuble and clear information. I am writing all of it on my notebook! I am so happy No worries. By the way, your avatar ... it looks like a Japanese cartoon I used to watch when I was a kid (when the Loony Tunes and Road Runner cartoons were not around). I don't recall anything about it, other than that the captain used to fly around in space in a WWII destroyer. Is that character from that cartoon? What is the name of that cartoon? 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.