Search the Community
Showing results for tags 'XB'.
-
Hi All, As I walked into my "Manshed" a small slip of dot matrix printed paper floated down in front of me, I picked it up and it was an XBasic single line program that I must have created back in 1984, so here it is: 1 CALL KEY(0,K,S):: X=X-(K=68)+(K=83)-(X<2)+(X>31):: Y=Y-(K=88)+(K=69)-(Y<2)+(Y>23):: CALL HCHAR(Y,X,30-(K=32 OR K=51)*2,1-(K=51)*768:: GOTO 1 So here is a chance for all those single line XB programs that are actually a complete program to be listed. The proviso is it must comply with standard TI99 XB cartridge. If you have other types of enhanced XB, please include them but make it known what you used and the special CALL or Function that make it unique. Regards Arto
-
Hello to all here in this phantastic forum, today it is time to share a small programm to access a lot of games and applications in an easy way. I named the program "Mega Menu" it is currently in German but I add a manual in English and it works only with a TIPI system from 1.0betav34 and RXB. So I know I have much room for improvements. But the program is not just another menu program. - It shows date and time from the tipi system - The program shows the RXB version used - There are three screen displays with 30 menu entries each - It shows the mapped folders to the drives DSK1, DSK2 and DSK3 - Use CTRL + 1 to 3 to change the drive mapping from every screen - Use CTRL + D to catalog DSK1 - 3 - Use CTRL + C to configure your own programs in the selection screen or make a individual submenu For more informations please read the MEGA MENU Manual MegaMenu_Manual.pdf
- 35 replies
-
- 13
-
Hi. I'm tinkering with a project that I'm not sure I will fully pursue yet, but nonetheless it requires sorting an integer array in ascending order (it can sort a 2 dimensional array for either column 1 or 2). I implemented a sort function as shown below, but performance for even 30 elements is dismal. Any suggestions for something better? 5000 REM ARRAY SORTING ROUTINE 5020 EFLAG=0 5030 FOR I=1 TO R 5035 IF I=R THEN 7160 5040 IF COL=2 THEN 7110 5060 V1=DLIST(I,1)::V2=DLIST(I+1,1) 5070 IF V2<V1 THEN DLIST(I,1)=V2::DLIST(I+1,1)=V1::EFLAG=1 7080 GOTO 7160 7110 V1=DLIST(I,2)::V2=DLIST(I+1,2) 7120 IF V2<V1 THEN DLIST(I,2)=V2::DLIST(I+1,2)=V1::EFLAG=1 7160 NEXT I 7170 IF EFLAG=1 THEN 5020 7180 RETURN
-
Are the shapes moving one after another ? 100 call clear::call screen(16)::call char(32,rpt$("0F",8)&"FFFFFFFF")::call magnify(2) 110 call sprite(#1,33,5,64,1,0,4,#2,33,12,124,2,0,4)::for i=0 to 9^9::next i run Tip. If you include the run and a linefeed in your copy of the above, and paste into Classic99 (being ready for input in Extended Basic), then the program is executed in CPU Overdrive.
-
The final battle of the XB Combat Competition will be posted this afternoon. You can view the previous 2 semi-final battles here:
-
- xb
- competition
-
(and 1 more)
Tagged with:
-
A good morning with no sprites ... 100 CALL CLEAR :: CALL SCREEN(4) 110 CALL COLOR(1,4,4,2,4,16,3,4,16,4,16,16,5,13,16,6,4,13,7,4,13,8,13,13,9,7,16,10,7,16) 120 CALL CHAR(40,"FFFFFFFFFFFFFFFEFFFFFFFFFFF88000FFFFFFFFFF000000FFFFFFFF") 130 CALL CHAR(44,"FFFFFFFFFF1F0100FFFFFFFFFFFFFF7FF8E08080000000001F070101") 140 CALL CHAR(48,"000000000000FCFE7F1F0F0703010100FEFC00000000000000010103070F1F7F") 150 CALL CHAR(52,"8080E0F8FEFFFFFF000000000080F8FF") 160 CALL CHAR(64,"00000000000000FF0000000000011FFF0101071F7FFFFFFF") 170 CALL CHAR(72,"FFFFFFFFFF3F0F03FF3F0F0300000000FFFFFFFFFF7F3F3FC0F0FCFFFFFFFFFF") 180 CALL CHAR(76,"00000000C0F0FFFF00000000000000FF00000000000003FF000000030F3FFFFF") 190 CALL CHAR(80,"3F7FFFFFFFFFFFFF") 200 CALL CHAR(96,"00073F7FFFFF7F3F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00E0FCFEFFFFFEFC") 210 CALL CHAR(100,"0700010307070707FFE0C08080000000FFFF000000000000FF") 220 CALL CHAR(104,"E000000000000000070707070707070707070707070606060606060606060606") 230 CALL CHAR(108,"07070F0F0F0F0F0E") 240 FOR L=8 TO 18 :: READ D$ :: DISPLAY AT(L,10):D$ :: NEXT L 250 DATA "()*++*,-",".`abbac/","8deffgh8","8i88888801","8j888888 8","8k888888 8" 260 DATA "8l888888 8","8888888823","88888888H","45@88@ABXIJ"," KLMXXXNOP" 270 GOTO 270 RUN Somewhat inspired by Calimari Carl ... Camellia sinensis, cup of tea, cup of coffee ...
-
Hi. I'm trying to set up the color table of an XB program from an assembly subprogram in low memory and it's not working. I'd like to confirm a few facts: The color table is at >800 and is 32 bytes long The color bytes are set up as foreground in most significant nibble and background in the least significant nibble The color numbers are those used by assembly and not XB Color set #1 (starting with character # 32) is at >804 in the color table If all the above are correct, then I am stumped...
- 7 replies
-
- extended basic
- xb
-
(and 2 more)
Tagged with:
-
Finally my tiny tribute to Phoenix! Download it in various format from here: https://www.bleepbit.com/2020/12/27/phoenix-tribute-for-ti-99-4a-extended-basic-basic-compiler/ Bye
- 11 replies
-
- 21
-
Hi there, when I wrote XB games with multiple rooms/levels I usually defined a description string, wrote a little interpreter and stored the levels in DATA statements (or a file). Usually a level had 30 to 60 bytes and the format was depending on the game, universal would be more. I wonder whether there is a generic format to shorten the CALL HCHAR, VCHAR, SPRITE etc already established? One char per command or parameter, no need for seperators etc., i.e. five bytes for a HCHAR with character, row, column and repeat. Using 0-9, A-Z,a-z would give us 0 to 61, whereas I often used ASC(x)-48 which is faster but harder to read ... colon equals 10, D equals 20. With a level editor readability would not really be an issue, would it? Sprites would be positioned according to character coordinates (row*8)-7. CALL HCHAR(5,10,88,3) could be H5AX3 or H5:X3. Does this makes sense? Or is there already something I wasn't able to find because this is hard to google? How to handle char codes beyond 127? Any clever ideas? Thank you Steve
-
sstars8.bin - - - - - Just a bit of fun ... ... to be continued
-
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.
- 61 replies
-
- 2
-
- Extended Basic
- XB
-
(and 2 more)
Tagged with:
-
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
-
Hi Guys, yesterday I have run into a nasty Syntax Error in Extended Basic, which also occurs in RXB. I don't understand it and wonder if the line really contains a Syntax Error or this is a Interpreter Bug. Version 1: 1 IF A=1 THEN 2 ELSE FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Version 2: 1 IF A=1 THEN 2 :: FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Both versions complain about a Syntax Error in Line 1. I would like to analyze it with the help of you and maybe RXB can be even fixed.
- 2 replies
-
- extended basic
- rxb
-
(and 4 more)
Tagged with:
-
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!
-
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?
- 16 replies
-
- XB
- Extended Basic
-
(and 1 more)
Tagged with:
-
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?
-
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.
-
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
-
Howdy TIers. I hate to start a new thread, but I couldn't find a good place for it. So, I am working on a proof of concept for launching programs from a program: 100 CALL CLEAR 110 INPUT "FILENAME:":FL$ :: IF FL$="" THEN 110 120 RUN "DSK1."&FL$ But this gives * SYNTAX ERROR IN 120. However, if I change 120 to 120 PRINT "DSK1."&FL$ I get the expected string printed on the screen (i.e., if I type in LOAD for the input, I get DSK1.LOAD printed on the screen). Why does RUN not like this syntax? Is this possible through XB, or am I just wasting my time? Thanks for reading!
- 35 replies
-
- xb
- extended basic
-
(and 1 more)
Tagged with:
-
Just a quick little XB thingy. 100 call clear::print "TI BASIC READY"::call newline(24)::call wait(500) 110 call reveal(24,"SOMETHING WENT WRONG... ")::call wait(500)::call newline(23) 120 call char(40,"7CFC747CFE7C7C286C",42,"",43,"")::call magnify(3)::call wait(300) 130 call sprite(#1,40,2,178,17)::call wait(300)::call hchar(23,3,32)::call wait(500)::call motion(#1,-2,4) 140 call sound(-4000,-8,0)::call wait(300)::goto 140 150 sub newline(l)::print::call hchar(l,2,62)::call hchar(l,3,30)::subend 160 sub reveal(l,m$)::for c=1 to len(m$)::display at(l,c):seg$(m$,c,1)&chr$(30); ::next c::subend 170 sub wait(n)::for i=0 to n::next i::subend Power droids are unsophisticated droids that act as ambulatory batteries, recharging vehicles and machinery. They are equipped with a small, internal power generator, and several plug-in sockets. They are commonly found on under-developed worlds that do not have an expansive power grid, or in mobile military operations. Although they are extremely important to both military and civilian life, power droids are so commonly encountered in the galaxy that they often go unnoticed. The GNK droid by Industrial Automaton and the EG-series droid by Veril Line Systems are popular power droids. Both are commonly referred to as "gonks" after the low honking sound they can emit.
-
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
-
Exsqueeze me. Bugs Bunny fan art parody. Ha ha ha ...
-
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.
-
Inspired by Owen https://youtu.be/adN1P_8Scks?t=156