Jump to content

PlanetJanus

New Members
  • Posts

    29
  • Joined

  • Last visited

Recent Profile Visitors

788 profile views

PlanetJanus's Achievements

Space Invader

Space Invader (2/9)

0

Reputation

  1. OK. Thanks. Now my mind can struggle with different concepts. lol.
  2. Essentially, If I use the PRINT AT command to print something at (5,2) is that stored in the #BACKTAB in the 25th position -or- is PRINT AT merely a command that displays text/cards on the screen?
  3. Larger Sprites of same critters can be stronger versions of smaller sprite critters. Kind of a gimmick, but memory shortage is a real thing.
  4. You guys just bust this stuff out. Amazing.
  5. Thanks Carlson, I was thinking about hexidecimal and the letter C. many programs to check to see no input is incoming from the controller put in the line: IF cont1.key <> 12 then [...] "C" is 12 in hexidecimal, so the key pad is always emitting a value of 12 in hexidecimal when nothing is being pressed.
  6. This is the best program example I've seen that shows how BACKTAB works. Thanks!
  7. Thanks. I've seen the STIC before, but it is taking me a while to digest all of this stuff.
  8. I was playing with the code in examples/controller. (Thanks @NanoChess) I created a single controller output...mostly. The Number Pad is to the Right of the controller output. The ROM is Below. Here is the code. BORDER BORDER_BLACK CLS loop: WAIT IF cont1.up THEN PRINT AT SCREENPOS(4, 1),"U" ELSE PRINT AT SCREENPOS(4, 1),"0" IF cont1.left THEN PRINT AT SCREENPOS(3, 2),"L" ELSE PRINT AT SCREENPOS(3, 2),"0" IF cont1.right THEN PRINT AT SCREENPOS(5, 2),"R" ELSE PRINT AT SCREENPOS(5, 2),"0" IF cont1.down THEN PRINT AT SCREENPOS(4, 3),"D" ELSE PRINT AT SCREENPOS(4, 3),"0" IF cont1.b0 THEN PRINT AT SCREENPOS(3, 5),"x" ELSE PRINT AT SCREENPOS(3, 5),"0" IF cont1.b1 THEN PRINT AT SCREENPOS(4, 5),"y" ELSE PRINT AT SCREENPOS(4, 5),"0" IF cont1.b2 THEN PRINT AT SCREENPOS(5, 5),"z" ELSE PRINT AT SCREENPOS(5, 5),"0" ' KEYPAD IF NUMLOCK = 1 THEN PRINT AT SCREENPOS (11, 1), "1" ELSE PRINT AT SCREENPOS (11, 1),"X" IF NUMLOCK = 2 THEN PRINT AT SCREENPOS (13, 1), "2" ELSE PRINT AT SCREENPOS (13, 1),"X" IF NUMLOCK = 3 THEN PRINT AT SCREENPOS (15, 1), "3" ELSE PRINT AT SCREENPOS (15, 1),"X" IF NUMLOCK = 4 THEN PRINT AT SCREENPOS (11, 3), "4" ELSE PRINT AT SCREENPOS (11, 3),"X" IF NUMLOCK = 5 THEN PRINT AT SCREENPOS (13, 3), "5" ELSE PRINT AT SCREENPOS (13, 3),"X" IF NUMLOCK = 6 THEN PRINT AT SCREENPOS (15, 3), "6" ELSE PRINT AT SCREENPOS (15, 3),"X" IF NUMLOCK = 7 THEN PRINT AT SCREENPOS (11, 5), "7" ELSE PRINT AT SCREENPOS (11, 5),"X" IF NUMLOCK = 8 THEN PRINT AT SCREENPOS (13, 5), "8" ELSE PRINT AT SCREENPOS (13, 5),"X" IF NUMLOCK = 9 THEN PRINT AT SCREENPOS (15, 5), "9" ELSE PRINT AT SCREENPOS (15, 5),"X" IF NUMLOCK = 88 THEN PRINT AT SCREENPOS (11, 7), "A" ELSE PRINT AT SCREENPOS (11, 7),"X" 'zero key IF NUMLOCK = 0 THEN PRINT AT SCREENPOS (13, 7), "0" ELSE PRINT AT SCREENPOS (13, 7),"X" 'period/delete key IF NUMLOCK = 100 THEN PRINT AT SCREENPOS (15, 7), "E" ELSE PRINT AT SCREENPOS (15, 7),"X" 'enterkey a=cont1 PRINT AT 183 b=a/16 GOSUB hex b=a GOSUB hex a=cont1.key PRINT AT 141,"key " b=a/16 GOSUB hex b=a: NUMLOCK = B 'PRINT AT SCREENPOS (13, 9), B GOSUB hex GOTO LOOP hex: PROCEDURE b = b and 15 b = b + "0" if b > "9" then b=b+7 PRINT b*8+7 RETURN END InfiniteLoop: GOTO InfiniteLoop _____________________________________________________________________________________________________________________________ I don't understand what the HEX subroutine is for? Converting the numberpad into hexidecimal perhaps? Why is this important enough to be exemplified? The ZERO and ENTER key of the KEYPAD do not work and just have dummy numbers in place. The output of the key for ZERO is 88 and listed as button A. The output for ENTER is 28 and listed as button B. i was unable to find a numerical output that works. Button C or the output C is constantly running, so is that "C" a "C button" or indicative of "Clear" meaning no input from keyboard?
  9. .PRINT [AT [expr],]expr[,expr] . .Pokes a 12-bits value directly into .the screen, which is useful for .variable things and GRAM cards. So, PRINT POKES into a position. This means that Position can also be seen by PEEK. I think part of my confusion us that there are 4 levels to the screen. The Background BACKTAB. The Foreground BACKTAB. The Layer at SCREENPOS. And the SPRITE layer, that seems like a META layer in regards to interaction with other layers and governed by COL.
  10. Attached ROM. Sorry that wasn't up before. Cursor keys get it on screen eventually. Code: CLS WAIT MODE SCREEN_COLOR_STACK, STACK_BLACK, STACK_BLACK, STACK_BROWN, STACK_BLACK BORDER BORDER_WHITE WAIT DEFINE DEF00,3,pimpmap WAIT x1=80 y1=56 x2=#x1 y2=#y2 PRINT AT SCREENPOS(0, 0) COLOR CS_White, x2 PRINT AT SCREENPOS(0, 1) COLOR CS_Yellow, y2 'LOOP 100 X LOOP: FOR L = 1 to 100 'print Sprites at x1, y1 'Sprite (# of Sprite), (X location) + Visible + size x axis, (Y location) +size y axis, SPR00(?) then color SPRITE 1, (x1-20)+ VISIBLE + ZOOMX1, (y1+20) + ZOOMY1, SPR01 + SPR_WHITE WAIT WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 2, (x1+20)+ VISIBLE + ZOOMX1, (y1-20) + ZOOMY1, SPR02 + SPR_WHITE WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 1, (x1+20)+ VISIBLE + ZOOMX1, (y1+20) + ZOOMY1, SPR01 + SPR_RED WAIT WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 2, (x1-20)+ VISIBLE + ZOOMX1, (y1-20) + ZOOMY1, SPR02 + SPR_BLUE WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 1, (x1+20)+ VISIBLE + ZOOMX1, (y1-20) + ZOOMY1, SPR01 + SPR_WHITE WAIT WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 2, (x1-20)+ VISIBLE + ZOOMX1, (y1+20) + ZOOMY1, SPR02 + SPR_WHITE WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 1, (x1-20)+ VISIBLE + ZOOMX1, (y1-20) + ZOOMY1, SPR01 + SPR_BLUE WAIT WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST SPRITE 2, (x1+20)+ VISIBLE + ZOOMX1, (y1+20) + ZOOMY1, SPR02 + SPR_RED WAIT WAIT WAIT WAIT WAIT WAIT GOSUB TEST NEXT L test: PROCEDURE IF CONT1.UP THEN IF Y2>0 THEN Y2=Y2-2 IF CONT1.DOWN THEN IF Y2<104 THEN Y2=Y2+2 IF CONT1.LEFT THEN IF X2>0 THEN X2=X2-2 IF CONT1.RIGHT THEN IF X2<168 THEN X2=X2+2 IF CONT1.BUTTON THEN SOUND 0,100,15 ELSE SOUND 0,,0 ' beeper SPRITE 0, (x2)+ VISIBLE + ZOOMX1, (y2) + ZOOMY1, SPR00 + SPR_YELLOW PRINT AT SCREENPOS(0, 0) COLOR CS_White, x2 PRINT AT SCREENPOS(0, 1) COLOR CS_Yellow, y2 END pimpmap: REM SPRITE BITMAP "........" BITMAP "........" BITMAP "...##..." BITMAP "..####.." BITMAP "##.##.##" BITMAP "########" BITMAP "..####.." BITMAP "...##..." REM SPRITE2 BITMAP "########" BITMAP "########" BITMAP "##....##" BITMAP "##....##" BITMAP "##....##" BITMAP "##....##" BITMAP "########" BITMAP "########" REM SPRITE3 BITMAP "##....##" BITMAP ".##..##." BITMAP "..####.." BITMAP "...##..." BITMAP "...##..." BITMAP "..####.." BITMAP ".##..##." BITMAP "##....##"
  11. So, I was attempting to print out the entire GROM, up to the 240th card on the screen with this code. CLS X = 0 Y = 0 C = 0 WAIT LOOP: WAIT PRINT AT SCREENPOS (X,Y) COLOR CS_WHITE, C IF X >= 20 THEN GOTO NEXTLINE X = X + 1 * C= C + 1 ** IF C = 239 GOTO INFINITELOOP GOTO LOOP NEXTLINE: X = 0 Y = Y + 1 GOTO LOOP InfiniteLoop: GOTO InfiniteLoop What I get is a list of items from BACKSPACE to "=" in 8 different colors. Intuitively, I believed that the GROM had a number assigned to each CARD in each color. I changes the line at * to "C = C +8" to some avail, I got the same pattern from GROM from BACKSPACE to "=" in only black, but the program only prints out to the point of "=" and no further. Why? Is there another forum about accessing the GROM that I can be pointed to. I looked. CARDLIST.rom
×
×
  • Create New...