Jump to content

Search the Community

Showing results for tags 'Extended BASIC'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • 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
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • 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
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Star Wars - The Original Trilogy's Star Wars Talk
  • DMGD Club's Incoming!
  • DASM's General


There are no results to display.

There are no results to display.


  • 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


Last Updated

  • Start


Filter by number of...


  • Start










Custom Status



Currently Playing

Playing Next

Found 8 results

  1. Had an idea for a graphical "fill" that would fill up the entire screen very gradually, in a fluid way. My plan was to write it in BASIC, then compile it with Harry Wilhelm's compiler, to make it fill the screen quickly. I devised the way to redefine the characters and had them just fill one screen row first. I had to switch to XB because I needed CALL CHARPAT... then I tried to compile and found out that CHARPAT isn't supported by the compiler. Rats! Anyway, so here's a graphical depiction of what would be a really cool effect, only it's at glacial speed and therefore as exciting as watching dust accumulate. Although... I think I may have just thought of a workaround, albeit a really clumsy one. More later. 100 REM LINE FILL EFFECT 110 REM KEITH BERGMAN 6/9/2012 120 DIM FLAG(32) 130 CALL CLEAR 140 FOR X=1 TO 32 150 CALL CHAR(X+64,"0000000000000000") 160 CALL HCHAR(12,X,X+64) 170 NEXT X 180 X=INT(RND*32)+1 190 IF FLAG(X)=1 THEN 180 200 Y=INT(RND*2)+1 210 CALL GCHAR(12,X,C) 220 IF Y=1 THEN 380 230 FFLAG=16 240 C$=CHR$(C) 250 CALL CHARPAT(ASC(C$),Z$) 260 T$=SEG$(Z$,FFLAG,1) 270 IF T$="F" THEN 340 280 T$=CHR$(ASC(T$)+1) 290 IF T$=":" THEN T$="A" 300 Z$=SEG$(Z$,1,FFLAG-1)&T$&SEG$(Z$,FFLAG+1,16-FFLAG) 310 CALL CHAR(C,Z$) 320 CALL HCHAR(12,X,C) 330 GOTO 180 340 FFLAG=FFLAG-2 350 IF FFLAG>0 THEN 240 360 FLAG(X)=1 370 GOTO 180 380 FFLAG=15 390 GOTO 240
  2. I'm calling this one done and at version 1.0! Unless someone finds a major bug. The spiritual sequel and final installment of the Wizard's series published by long-gone-but-not-forgotten Rainbow software, Wizard's Doom is a new 3D dungeon game written in TI Extended BASIC with assembly language assistance. Features include: Three different character classes to play Procedurally generated dungeons for infinite replay Two dozen different monsters with varying characteristics and abilities Six dozen different items to find including weapons, armor, scrolls, potions, rings, and much more Save and load game feature Full manual in PDF format I also have a very limited print run of paper copies of the manual! If you want to acquire one, I will be happy to ship one to you at the cost of postage. (About $3 for U.S. domestic) Please private message me if interested! Only while supplies last! Wizard's Doom 1.0.1: WizardsDoom.zip
  3. 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
  4. First, I have a Mini Memory, but after fighting with it for a week, I cannot seem to work out exactly how to create something that will work with Extended Basic & a 32K RAM expansion. So, I've been looking to buy the Editor Assembler package (cart, disks, manual, ref, & keyboard overlay/slip.) Though that might take a while. Until then, I've been working with several emulators to try and get some practice in. The problem is that I cannot seem to write anything that will work. I tried entering a program from the "Introduction to Assembly Language for the TI Home Computer" book available elsewhere here, but it still wouldn't run. I tried the code exactly as written in the TI Basic option of the Editor/Assembler cartridge. I also tried adding in EQU instead of REF for the 2 calls (VSBW & VMBW,) in Extended BASIC. The example program ran fine with (3 Load and Run) from E/A (with the return altered by decrementing twice to freeze at the end.) Am I missing some important step? My code included... It's just a simple program to place text at a specific screen location. IDT 'HSTR' * MAY NOT BE NECESSARY, BUT DOESN'T HURT DEF HSTR VMBW EQU >2024 XMLLNK EQU >2018 NUMREF EQU >2000 *ALSO TRIED REMOVING ALL THESE AND USING STRREF EQU >2014 * COPY "DSK2.XB-EQUATES GPLWS EQU >83E0 *WHICH I PAINSTAKINGLY COPIED FROM THE STATUS EQU >837C *EDITOR/ASSEMBLER MANUAL (WITH CORRECTIONS) CFI EQU >12B8 *ALSO TRIED VALUES FROM A COMPUTE! BOOK FAC EQU >834A USRWS BSS 32 BUFFER BSS 256 SAVRTN DATA >0000 EVEN HSTR MOV R11,@SAVRTN LWPI USRWS CLR R0 LI R1,1 BLWP @NUMREF BLWP @XMLLNK DATA CFI DEC @FAC LI R3,32 MPY @FAC,R3 INC R1 BLWP @NUMREF BLWP @XMLLNK DATA CFI DEC @FAC A @FAC,R3 INC R1 LI R2,>FF00 MOVB R2,@BUFFER LI R2,BUFFER BLWP @STRREF MOV R3,R0 MOV R2,R1 MOVB *R1+,R2 SRL R2,8 BLWP @VMBW LWPI GPLWS MOV @SAVRTN,R11 CLR @STATUS B *R11 * ALSO TRIED RT END
  5. Hey guys. Need some help with this one... In particular, this one is focused on the internals of Extended BASIC, So I know we have some guru's around here on the subject. (Hey Rich!) I'm disappointed that the TI Tech pages fail to have any memory dumps or extensive exploration of the Extended BASIC cartridge. I forget where I got it from, but I found this method long ago to execute the start of an EA option #5 program through Extended BASIC: 100 F$="DSK1.PROG" :: ON ERROR 200 110 CALL INIT :: CALL LOAD(8196,251,214) :: CALL LINK("OPT5",F$) 200 PRINT "DEVICE ERROR!":"CORRECT AND PRESS A KEY" 210 CALL KEY(0,K,S) :: IF S=0 THEN 210 ELSE RETURN 100 Clearly it's linking to some subprogram that's part of Extended BASIC's initializations called OPT5... I'm not sure why it's loading >FBD6 to >2004, but I presume it's over-writing a utility vector of some kind, the value there upon INIT is >4000 initially. Anyway, this method works fine with most option 5 programs, but fails with my CRPG loader.... Probably because I'm placing my load program in low memory. I have it at the >3000 mark, so it should be preserving the part of low RAM it needs, but it still fails and just cycles endlessly. Can anyone describe exactly what the above routine is doing, and if there's anything I can do to make it work? I could see the XB utility only working in high memory, so I suppose in that case I'll just have to embed the assembly code using SYSTEX and execute it directly...
  6. There are multiple versions of Extended BASIC for the TI-99/4A, many of these versions are owned by different individuals. Some people may have written programs for their own use using these variants, but may never have released them for public consumption due to their lack of adoption by the greater community as a whole. So, while many of the Extended BASIC versions are actually BETTER than the TI version, most programs were still released in TI Extended BASIC to reach a wider audience. Times change, with the advent of new cartridges, and the ability to burn our own, a greater percentage of remaining TI’ers (like Atari Age users) may now be able to exploit new and improved XB programs. For instance a couple of years ago the late Gazoo sold quite a few XB 2.7S cartridges and with them, their enhanced capabilities. This poll is to determine how many of you actually own, use, program or simply let these different versions collect dust on a shelf. Please, feel free to add any comments or suggestions in the message area below.
  7. 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
  8. Here is an interesting one. In my program I am testing true/false values by just referencing the variable. Any value other than zero is true and a value of zero is false. I changed this subroutine 100 CALL KEY(0,K,S) :: IF S THEN 110 ELSE 150 110 REM PROCESS KEYPRESS 120 REM WORK DONE 130 REM SET A RETURN VARIABLE 140 RETURN 150 REM SOMETHING ELSE IS DONE HERE 160 RETURN To this 100 CALL KEY(0,K,S) :: IF NOT S THEN 150 110 REM PROCESS KEYPRESS 120 REM WORK DONE130 REM SET A RETURN VARIABLE 140 RETURN 150 REM SOMETHING ELSE IS DONE HERE 160 RETURN But the results are not what are expected. If a key is pressed in line 100 the jump is still taken to line 150. HOWEVER, separating out CALL KEY() and the IF-THEN like so 100 CALL KEY(0,K,S) 105 IF NOT S THEN 150 does work as expected. What gives??
  • Create New...