Jump to content

Search the Community

Showing results for tags 'XB'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Atari Systems
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Gaming General
    • Classic Gaming General
    • Classic Computing
    • Modern Gaming
    • Prototypes
    • Arcade and Pinball
    • Emulation
    • Hardware
    • Gaming Publications and Websites
    • International
  • Marketplace
  • Community
  • Game Programming
  • Site
  • Classic Gaming News
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's General
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews

Blogs

There are no results to display.

There are no results to display.

Calendars

  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar
  • ZeroPage Homebrew's Schedule

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


Facebook


Twitter


Instagram


YouTube


eBay


GitHub


Custom Status


Location


Interests


Currently Playing


Playing Next

Found 21 results

  1. I came across this site today https://gkanold.wixsite.com/homeputerium/kopie-von-basic-10liners-2019. I know we've done a similar contest in the past, but it allowed for DATA statements. It would be fun to launch a new contest for games programmed with only 10 lines of XB and nothing else and see what we can come up with. Any interest? We could submit them to the 2020 entries.
  2. Hello to everyone in this excellent forum. Not everyone regularly looks into the TI-99 / 4A Development Forum, so I want to briefly inform you here about a menu program for TIPI users, which I have provided today under the following link. https://atariage.com/forums/topic/289955-mega-menu-for-tipi/ Please scroll to Message # 4 for the new version and have fun!
  3. Hi. When chain-loading XB programs, my usual process has been to save the variables to disk before loading the next program then retrieving them back. I was thinking, since low memory is preserved in XB during that process, why not use CALL LOAD to save the variables to low memory and retrieve them subsequently with a CALL PEEK? This would speed up the process tremendously. Am I missing something here?
  4. Do you know of any way to detect programatically if Extended BASIC or one of its derivatives is inserted in the cartridge port, either at startup or after the command line has shown up? Checking for certain bytes in the ROM/GROM space seems a little too brittle to me. The only sign of Extended BASIC I know of is >8345, which contains some flags for XB. But since TI BASIC doesn't use this location at all, and thus may contain a random value, that address is useless. Maybe you can tell from the program space or any data structures in VDP RAM?
  5. Inspired by Owen https://youtu.be/adN1P_8Scks?t=156
  6. Started using Harry Wilhelm's XB compiler (which is a great compiler) but came across a bug that most people may never come across but took me a while to figure out what was wrong. In XB you can assign a value to two or more variables with a comma. a.k.a. x=0::y=0 can be x,y=0 when i was compiling and old program the compiler kept locking up on this one line. after a while of trying everything I changed x,y=0 to x=0::y=0 on the line. turned out to be the problem and the compiler continued on. i.e. don't use commas for multiple variable definition. Just an FYI if ever you come across the same problem.
  7. So... I spent some time writing and converting the baseball game for the BBS. Now I have another itch--- An XB Adventure game which does not require the Adventure module... Primarily to run on the BBSes as well. Here's the plan: Come up with the premise, collect input from the members here on Atariage, write the game for the BBS, then get the "go-ahead" from the SysOp(s) to add it to the BBS as a playable door game. I had started work on a Beryl Reichardt adventure game, but scrapped it when I realized how inefficient the code was... I was able to read a book on Planet-99 which gave some very interesting insights into the development of the Adventure games and it really got me going! The methods described there are fascinatingly simple and straight forward and allow for a TON of stuff to be coded in with minimal duplicate code and minimal program space. Using a string variable array and TWO standard variable arrays is the key to having your map laid out AND having the ability to stock your world with the items you'll need to design the quest as you see fit. The key to the game is the parsing engine... How does the user communicate with the computer to TELL IT WHAT HE/SHE WANTS TO DO?!?! Well, as we all know, a computer doesn't speak english, and we cannot possibly code in every possible command. Therefore, we create a parsing engine which takes a noun and a verb (two separate string variables INPUT from the user) and attempts to read those from a list of acceptable nouns and verbs in the system. For instance, "OPEN DOOR" contains a verb and a noun. A successful parsing engine would read the noun (to determine if that thing (the door) is in the vicinity) and IF that noun IS legal, read the verb (to determine if the selected action can be performed on the noun)... For instance, "EAT BREAD" is cool if you have bread in your inventory. "EAT DOOR" does not work, even if DOOR is in the current "room." In this case you have a valid noun but an invalid verb to associate with that noun. This is the basis of the parser, and I have a much better understanding of it now than I did two days ago. With Willsy's permission, I will post a zipped pdf file of the book I'm referring to to this thread, once he gets on and allows it. =) Is anyone interested in participating in this development project? I will not be starting it immediately, as I have some pressing matters at hand writing some music and working with a couple suites... (ASLP by Hully and XB256 by Harry)... I would say that in the next week or two I will be returning my attention to this project. I just got my PEB set back up tonight and I'm picking up a monitor on Sunday, so I'll be hardware-active again this weekend.... WOOO HOOOO!!!!! That's an exciting thing for me.
  8. Ah well, nothing much. Basically just an E.T. clone ref.: http://www.atariage....ftwareHackID=26 http://en.wikipedia....harge_(fanfare))
  9. Make it so. 64 CALL CHAR(64,"00030101000002020200163E1F5F3F0E000000001010000000800000008") 68 CALL CHAR(68,"102000000000080400122001002040110000000000000000800080008000804") 72 CALL CHAR(72,"20102000000A05090D0D090060808020C0008000200010C0000000800040408") 76 CALL CHAR(76,"020000000204000000200000000000000000000000000000000000000000002") 80 CALL CHAR(80,"00000000000000120E46E44EEE7F1F1F0000000000000080000080000040202") 84 CALL CHAR(84,"000002010100080000280201100020000000100000004000000000004000808") 88 CALL CHAR(88,"030405020019120D111009A001004020101020A0004000400000008000A04") 92 CALL CHAR(92,"0002000000000000000000000080000000000010000020008000404") 96 CALL CHAR(96,"04010A02020424266606677B7A3F7F1E000000800000000000C090104020A") 100 CALL CHAR(100,"021200000402125100400804054000210000004040400000000000802000008") 104 CALL CHAR(104,"01041109093901008129108080000000000080008000C08000004020904") 108 CALL CHAR(108,"102800100000080010008000008000000000000000000000C000000000004") 112 CALL CHAR(112,"0000303808000001010000040E1F1F1E80000000000000001000000000008") 116 CALL CHAR(116,"00000004040801000001123211002020008000000000008080000000008") 120 CALL CHAR(120,"0422480012060800001A2509202000010040400000008010209000008") 124 CALL CHAR(124,"2000020000001200000408000000400040008000000000200") 200 CALL CLEAR::CALL SCREEN(2)::CALL MAGNIFY(3) 210 FOR I=64 TO 112 STEP 16 220 CALL SPRITE(#1,I,16,99,99,#2,I+4,12,99,99,#3,I+8,10,99,99,#4,I+12,7,99,99) 230 NEXT I::GOTO 210
  10. I have been looking at a COMPUTE! Magazine program from 1983 1984 called "Circus." Not sure why, but I felt compelled to OCR the PDF and then correct the text produced so it will actually run. I noticed a few inefficiencies, but what particularly caught my eye were lines like these: 380 IF ((H=104)+(H=112)+(H=120)+(H=128))*(FL=1)THEN GOSUB 50:: GOTO 290 390 IF (H=104)+(H=112)+(H=120)+(H=128)THEN GOSUB 50 :: DY=1 :: GOTO 290 Instead of using Extended BASIC's logical OR and AND operators, the programmer used the + and * mathematics as if programming in regular TI BASIC. Are there any performance benefits to using one over the other in Extended BASIC? The full listing follows.
  11. 27 lines of code ... Disk, TI-FILES and source text:
  12. I referenced SUPERBASIC in another topic. This program was a "life saver" back in the day when I was doing quite a lot of Extended BASIC programming. SUPERBASIC loads into the lower 8k memory space. It provides the user with a number of "hotkeys" that can be accessed through simple keypresses, such as "CTRL-1" to catalog DSK1 or user-defined keys to simplify programming. It adds commands that allow you to resequence and delete segments (without affecting the rest of the program), load text files into memory from disk as if you typed the program line yourself, search the entire program from the command mode using "!" or "/", and more. I really liked the ability to show a text file right from the command prompt. Here's the first portion of the readme file I've added to the disk using the "TYPE" command: Title screen: Searching for a word in the program : The author does warn users about some garbage collection/issues. I don't recall encountering these back in the day, of course, that was 30 years ago. The attached DSK file contains the original instructions. I have modified the assembly code to disable the dongle test, and included the change in the !README file for anyone with the original disk. (Edit: properly named the dsk file) SuperBasicKarasek No Dongle needed-90k.DSK
  13. I am looking for a routine that will run an Extended BASIC program based on a variable. A few years back I cobbled something together but can not find the disk or image where it was saved. During my 'hunt' I found two routines that come close. The caveat is that I need the program lines left intact in case of an error, so that ON ERROR can recover an report back if the program load fails. Variable and other space should also remain intact to ensure execution continues successfully. This one doesn't work very well if at all. 100 CALL INIT 110 FOR Z=1 TO LEN(A$) :: CALL LOAD(-41+Z,ASC(SEG$(A$,Z,1)),0) :: NEXT Z :: CALL LOAD(-41,LEN(A$)) :: CALL LOAD(-44,4+LEN(A$)) 120 RUN "DSKx.1234567890" This routine works but it destroys the SUBEND in line 32767. I extended the RUN filename reserved space to allow for hard drive paths. 32765 SUB EXEC(A$) :: CALL PEEK(-31952,AC,AD) :: CALL PEEK(AC*256+AD-65534,AC,AD) :: AF=AC*256+AD-65534 :: CALL LOAD(AF,LEN(A$)) 32766 FOR AC=1 TO LEN(A$) :: CALL LOAD(AF+AC,ASC(SEG$(A$,AC,1))) :: NEXT AC :: CALL LOAD(AF+AC,0) 32767 RUN "DSK1.FILENAME011234567890123456789012345678901234567890" :: SUBEND
  14. And yet another XB demo ... 100 CALL CLEAR::CALL SCREEN(2)::CALL COLOR(2,16,1):$="10125256D6DEDFFF"::DIM X(31) 110 FOR A=0 TO 7::CALL CHAR(40+A,RPT$("0",14)&SEG$(P$,A*2+1,2))::NEXT A 120 FOR A=1 TO 28::CALL SPRITE(#A,40,16,250,RND*255+1,9,RND*2.5-1.25)::NEXT A 130 R=INT(RND*32)::CALL HCHAR(24,R+1,X(R)+40):(R)=X(R)+1+(X(R)>6)::GOTO 130
  15. Derived from TI Basic Scrolling. Well, couldn't help trying out something in XB ... 100 CALL CLEAR::CALL SCREEN(2)::CALL MAGNIFY(3)::CALL COLOR(2,1,1,3,16,1) 110 CALL CHAR(48,"071F3F7F7EF8E0C0C0C0004000000000E0F8FCB40200000000") 120 CALL CHAR(52,"0800000001071F3F3E34E030703010001000004AFCFFCFC501") 130 CALL CHAR(56,"0000000000000000010B1F0F0F0F0F0F000000000000303AFEFFFFFEFEFCF8F") 140 FOR I=0 TO 11::DISPLAY AT(I*2+1,1):RPT$("(*",14)&RPT$(")+",14); 150 IF I>8 THEN 170 160 R=RND*220+1::CALL SPRITE(#I*3+1,48,16,I*21+4,R,#I*3+2,52,5,I*21+4,R,#I*3+3,56,6,I*21+4,R) 170 NEXT I::CALL COLOR(2,7,1):$="38440F1D3F6F2909081C0000000000001C22F0B8FCF694901038000000000000" 180 CALL CHAR(40,P$):$=SEG$(P$,31,2)&SEG$(P$,1,30)&SEG$(P$,63,2)&SEG$(P$,33,30)::GOTO 180
  16. I found this file on one of my old Diskettes that I had converted earlier this year... some of you might find a use for this.... =============================================================================== TI-99/4A Memory Map =============================================================================== ================== ============================================================ ADDRESS , VALUE(S) MEANING IN EXTENDED BASIC ================== ============================================================ CALL VERSION(X) IF X=100 100= NEWEST VERSION OF X/B CART 8192 , P USE (PEEK,P) IF P<> 70 OR <>121 THEN DO A CALL INIT 8194 , FIRST FREE ADDRESS IN LOW MEMORY 8196 , LAST FREE ADDRESS IN LOW MEMORY -28672 , P P=0 SPEECH NOT ATTACHED P=96 OR P=255 SPEECH IS ATTACHED -31572 , 0 TO 255 VARY KEYBOARD RESPONSE -31740 , P , Q PUT IN DIFFERENT TO CHANGE BEEPS,WARNINGS, ETC -31744 , 0 TO 15 CONTINUATION OF LAST SOUND (0=LOUD AND 15=SOFT) -31748 , 0 TO 255 CHANGE THE CURSOR FLASHING AND RESPONSE TONE RATES -31788 , 160 BLANK OUT THE SCREEN (MUST PUSH A KEY TO ACTIVATE) , 192 NO AUTOMATIC SPRITE MOTION OR SOUND , 224 NORMAL OPERATION , 225 MAGNIFIED SPRITES , 226 DOUBLE SIZE SPRITES , 227 MAGNIFIED & DOUBLE SIZED SPRITES , 232 MULTICOLOR MODE (48 BY 64 SQUARES) -31794 , P TIMER FOR CALL SOUND (COUNTS FROM 255 TO 0) -31804 , X , Y RETURN TO THE TITLE SCREEN (USE "PEEK (2,X,Y)") , P CHANGE THE CURSOR FLASH RATE (0 TO 255) -31806 , 0 NORMAL OPERATION , 16 DISABLE QUIT KEY (FCTN =) , 32 DISABLE SOUND (USE NEG DUR FOR CONTINOUS SOUND) , 48 DISABLE SOUND & QUIT KEY , 64 DISABLE AUTO SPRITE MOTION , 80 DISABLE SPRITES & QUIT KEY , 96 DISABLE SPRITES AND SOUND , 128 DISABLE ALL THREE -31808 , P , Q DOUBLE RANDOM NUMBERS (0 TO 255) NEED "RANDOMIZE" -31860 , 4 GO FROM EX-BASIC TO CONSOLE BASIC (NEED "NEW") , 8 AUTO RUN OF DSK1.LOAD -31866 , P , Q END OF CPU PROGRAM ADDRESS (P*256+Q) -31868 , 0 NO "RUN" OR "LIST" AFTER "BREAK" IS USED , 0 , 0 TURNS OFF THE 32K MEMORY EXPANSION , 255 , 231 TURNS ON THE 32K MEMORY EXPANSION -31873 , 3 TO 30 SCREEN COLUMN TO START AT WITH A "PRINT" -31877 , P P&32 = SPRITE COINCIDENCE P&64 = 5 SPRITES ON A LINE -31878 , P HIGHEST NUMBER SPRITE IN MOTION (0 STOPS ALL) -31879 , P TIMER FOR VDP INTERRUPTS EVERY 1/60 OF A SEC (0 TOP 255) -31880 , P RANDOM NUMBER (0 TO 99) NEED "RANDOMIZE" -31884 , 0 TO 5 CHANGE KEYBOARD MODE (LIKE "CALL KEY(K,...)") -31888 , 63 , 255 DISABLE ALL DISK DRIVES (USE "NEW" TO FREE MEMORY) , 55 , 215 ENABLE ALL DISK DRIVES (USE "NEW" TO FREE DRIVES) -31931 , 0 UNPROTECT X-B PROTECTION , 2 SET "ON WARNING NEXT" COMMAND , 4 SET "ON WARNING STOP" COMMAND , 14 SET "UNTRACE" COMMAND , 15 SET "UNTRACE" COMMAND & "NUM" COMMAND , 16 SET "TRACE" COMMAND , 64 SET "ON BREAK NEXT" COMMAND , 128 PROTECT X/B PROGRAM -31952 , P PEEK P=55 THEN 32K EXPANSION MEMORY IS OFF <>55 MEANS ON -31962 , 32 RETURN TO THE TITLE SCREEN , 255 RESTART X/B W/DSK1.LOAD . -31974 , P , Q END OF VDP STACK ADDRESS (P*256+Q) -32112 , 8 SEARCHES DISK FOR ? -32114 , 2 RANDOM GARBAGE , 13 SCREEN GOES WILD , 119 PRODUCE LINES -32116 , 2 RANDOM CHARACTERS ON SCREEN , 4 GO FROM X/BASIC TO BASIC -32187 , 0 UNPROTECT XB PROGRAM , 2 SET "ON WARNING NEXT" COMMAND , 4 SET "ON WARNING STOP" COMMAND , 9 SET 0 LINE NUMBER , 14 SET "UNTRACE" COMMAND , 15 SET "UNTRACE" COMMAND & "NUM" COMMAND , 16 SET "TRACE" COMMAND , 64 SET "ON BREAK NEXT" COMMAND , 128 PROTECT XB PROGRAM -32188 , 1 CHANGE COLOR AND RECEIVE SYNTAX ERROR , 127 CHANGE COLOR AND RECEIVE BREAKPOINT -32630 , 128 RESET TO TITLE SCREEN -32699 , 0 UNPROTECT XB PROGRAM , 2 SET "ON WARNING NEXT" COMMAND , 4 SET "ON WARNING STOP" COMMAND , 14 SET "UNTRACE" COMMAND , 15 SET "UNTRACE" & "NUM" COMMAND , 16 SET "TRACE" COMMAND , 64 SET "ON BREAK NEXT" , 128 PROTECT XB PROGRAM -32700 , 0 CLEARS CREEN FOR AN INSTANT -32729 , 0 RUN "DSK1.LOAD" -32730 , 32 RESET TO TITLE SCREEN -32961 , 51 RESET TO TITLE SCREEN , 149 SETS "ON BREAK GOTO" LOCKS SYSTEM
  17. Are the shapes moving one after another ?
  18. Just another little XB demo ... 100 CALL CLEAR::CALL CHAR(65,"101010383838386C") 110 CALL CHAR(68,"0000F0786C6C66660000FE66626A68780000FE66626A68780") 120 CALL CHAR(72,"0F06F66666667E6600003C1818181818") 130 CALL CHAR(76,"0000F060606060600000E36276767E7E0602E26272727A5A000070D8CCCCC6C6") 140 CALL CHAR(82,"0000F0786C646666080878C8C0E07038") 150 CALL CHAR(84,"0000FCB4B430303",86,"0702F26262666634",97,"6C6C7CC6C6C6EF") 160 CALL CHAR(100,"66666666646CF800786868626266FE00786868606060F") 170 CALL CHAR(104,"666666666666FF001818181818183C") 180 CALL CHAR(108,"606060626266FE007E5656464646EF005E4E4E464642E200C6C6C66666361C") 190 CALL CHAR(114,"667C786C6E66F7001CCC6E6666361C") 200 CALL CHAR(116,"30303030303078",118,"34343C3C181818") 210 CALL SCREEN(2)::CALL COLOR(5,11,1,6,11,1,7,11,1,9,3,1,10,3,1,11,3,1) 220 C$="SOMETIMES THE ROAD LESS TRAVELED IS LESS TRAVELED FOR A REASON SOMETIMES THE ROAD LESS TRA" 230 D$="sometimes the road less traveled is less traveled for a reason sometimes the road less tra" 240 FOR C=1 TO 66::DISPLAY AT(14,1):SEG$(C$,C,28)&SEG$(D$,C,28);::NEXT C::GOTO 240
  19. Fell over another short piece of old XB coding. All it did was make some nice lowercase characters. And yes, then it printed a few lines of text to the screen. Only 7 lines of character redefinition. Executed fairly quickly. Thought it would do nice with something - maybe even a text adventure, though it never really was my department, I did play a few, but was never hooked. Text adventures are often trying to be a bit dark or scary. To make it exciting I guess. I had kept then original black foreground color for the text, and just changed the background color. Easy and effective. Dark red was chosen. Made the text fade just a bit, but still clear enough for reading. Okay, I thought I might try and bring this one a bit further. With the Basic Compiler by Harry Wilhelm in mind. I searched high and low, but I didn't find something simple enough. I didn't want to spend hours at this. Just wanted something to make it one step further. Thought about writing something on my own, but then English is not my native language. I don't think I have the time for setting an atmosphere. Would be good practice though. Should it be action word oriented, maybe just walk around, pick up and use. Maybe just multiple choice. Or even just a yes and no. Started searching for short stories. Came across this storybytes.com. There's a link there saying "Lengthwise". Some of the really short ones were actually funny. Began to read the 128 words category. Settled for one. The idea is to be presented by some text and the choice to just continue to read the story. Altered the story slightly to be in first person (or whatever you say in English) - for this text adventure type like dramatic effect. Thought about adding some graphics, but chose not to. Started to format the text, which turned out to be the most boring part. Have to think about how to autoformat stuff in the future. Also realising that 28 characters is not a lot. Often you have to make some stupid decisions about where to break the line to make it readable, flow ... Full 40 column mode is unfortunately not an option just as it is. Attached is compiled version - named "load", so it will as you probably know, autoload. Also in the zip is the source. Nothing fancy there. Suggestions and feedback will be appreciated.
  20. Hi, I tried to make my own startmenue in XB. To change DSK1-3, I will use [ctrl]+1 for DSK1., [xtrl]+2 for DSK2 and [ctrl3]+3 for DSK3. If I start the small programm below with >OLD DSK1.PROG and >RUN, it works as expected. 100 CALL CLEAR 110 PRINT "KEY CHECK" 120 CALL KEY(0,K,S) 130 IF K>=177 AND K<=179 THEN 140 ELSE 160 140 PRINT "CTRL 1-3 OK!" 150 GOTO 120 160 PRINT "KEY";K;"STATUS";S 170 GOTO 120 If I autoload the programm (programm-name = load) in XB the programm doesn't accept [ctrl]+1-3! Normal key's and [FCTN]+key are working. What do I wrong in this case? Is anybody there who make it possible to use [CTRL]+1 after autoload? I tried this in RXB, XB2.5, XB2.7, stock TI and classic99, all the same problem. Thanks for any help, even if that does not work in XB.
×
×
  • Create New...