Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Community Reputation

17 Good

About charlietunaz

Recent Profile Visitors

132 profile views
  1. Yup, I realize now that F1 is a pause/continue toggle. Still the same result; I was just curious about the debugger's operation/behavior, to feel more comfortable with it in case I have to trace a more complex program in the future. The program as it is, seems to be running normally at regular speed. Thanks!
  2. I ran the code below in Classic 99 and I opened the debugger to watch and learn about breakpoints and reading register values. The program places the ball in the middle of the screen, then moves it down and wraps around to row 1 when it reaches the bottom row. I placed two breakpoints in A092 (mov R4,R0) and A09C (ai R2,>0001). A092 is right before updating the position of the ball, and A092 is comparing the current position to check if it went past row 24. I notice the position at R2 is updating fine, however, when I click the Normal Speed option sometimes the program skips one of the breakpoints, and the ball moves two rows at once. I'm not sure if this is a debugger glitch or there's something in the code that is not right. I've been clicking carefully using the keyboard and the mouse to make sure I'm not double clicking. I think the skipping happens in the same places all the time, so it's not random either. * CSL 02/22/2021 * BOUNCING BALL * DEF BBALL REF VSBW,VMBW,VWTR MYREG BSS >20 BALL DATA >3C7E,>FFFF,>FFFF,>7E3C *BALL PATTERN * BALL INITIAL POSITION ROW EQU >C COL EQU >10 * BBALL LWPI MYREG * PROGRAM START * CLEAR SCREEN LI R0,>0 * START OF VDP RAM LI R1,>2000 * PLACE SPACE (>20) CLEAR BLWP @VSBW INC R0 * NEXT SCREEN POSITION CI R0,>0300 * CK IF LAST POSITION (768) JNE CLEAR * IF NOT, CONTINUE * CHANGE SPACE BACKGROUND COLOR TO BLACK LI R0,>0384 * COLOR ADDRESS FOR SPACE LI R1,>B100 * COLOR YELLOW (B) ON BLACK (1) BLWP @VSBW * CHANGE SCREEN COLOR BORDERS LI R0,>0711 BLWP @VWTR * DEFINE BALL CHAR LI R0,>0C00 * PATTERN ADDR FOR CH >80 LI R1,BALL * DATA LI R2,8 * NUMBER OF BYTES BLWP @VMBW * SET BALL COLOR LI R0,>0390 * COLOR ADDRESS LI R1,>B000 * COLOR YELLOW (B) ON TRANSP (0) BLWP @VSBW * DISPLAY BALL LI R2,ROW MBALL LI R3,>20 MPY R2,R3 * R4 = (ROW * 32) AI R4,COL * + COL MOV R4,R0 * ROW & COL ADDRESS LI R1,>8000 * PLACE BALL CHAR (>80) BLWP @VSBW CLR R8 * DELAY INC R8 CI R8,>05DC JNE DELAY * MOV R4,R0 LI R1,>2000 BLWP @VSBW * ERASE BALL FROM CUR POS AI R2,>01 * GO DOWN ONE ROW CI R2,>17 * CHECK IF BOTTOM ROW JLE MBALL LI R2,>00 JMP MBALL END BBALL I added a video demonstrating what I wrote above. Please watch closely at 1:30 and 2:10 how the debugger goes from A092 and skips the breakpoint at A09C. Then the ball moves twice. Desktop 2021.02.23 -
  3. Amazing what you learn every day. It's going to take me a little longer to adapt to this system but at least I know I am not going crazy. Thanks for the explanation.
  4. I'm in the process of learning assembly language, so please be gentle with the responses I was looking at the editor/assembler book and another introductory book on assembly language, and they both indicate the following about VDP write-only registers: VDP Register 1: Default Value E0, which in binary = 1110 0000 Bit 0 = 4/16k Selection Bit 1 = Blank Enable Disable Bit 2 = Interrupt Enable/Disable Bit 3 = Text Mode Bit 4 = Multicolor Bit 5 = Reserved, default value = 0 Bit 6 = Sprite Size Bit 7 = Sprite Magnification I'm used to read bits like this 7 6 5 4 3 2 1 0 1 1 1 0 0 0 0 0 Therefore, for me, this means that the default value E0 indicates: Sprite magnification, Size, and the reserved bit are all on which does not make sense However, reading it like this, 0 1 2 3 4 5 6 7 1 1 1 0 0 0 0 0 Indicates: 16K RAM operation, display is allowed, Interrupts Enabled, which actually make sense, but I always thought Bit 0 = 0,1 Bit 1 = 2 Bit 2 = 4 Bit 3 = 8 Bit 4 = 16 Bit 5 = 32 Bit 6= 64 and Bit 7 = 128 So it is confusing, seeing E0 from left to right 1110 0000 and looking at this example as 0000 0111 Am I reading bits differently from how you read in 6502? or have I been reading bit values wrong all this time? Please clarify this confusion!
  5. Thanks, I've also installed and have been using xdt99. I really like the detailed error messages.
  6. Wow, thank you all for your very detailed and helpful responses. Looking closely at all the answers, I'm now particularly interested in the Asm994a cross assembler option. I tried the program and works great. I'm starting to learn TMS9900 assembly code, so I will probably start asking a lot of newbie questions in the near future. Thanks again.
  7. Here's the story: I typed in a program from a book using the E/A built-in editor using the Classic 99 Emulator. I originally saved it as VAR 80 Format (Y option), but when I loaded it back into the editor, it gave me a waring that "control characters were removed" and all line breaks were gone (code was all in one line) and I could not assemble the code as is, however, the file was readable using Notepad ++ and in the correct format, with line breaks. When I saved the file without VAR 80 format (N option), the program opened correctly for editing and assembling using the E/A editor, but it was unreadable in Notepad ++ So the question is: Is there a Windows editor that I can use to type in Assembly code that can be loaded into the Editor Assembler, and what settings do I need to use to make the file readable and be able to assemble? I've already tried adding CR/LF, removing CRLF and many other combinations using Notepad ++ and Word but none seem to work.
  8. That's most likely a false positive, but I removed it just in case. I don't think is a critical file for the system to work. Try again.
  9. I want to show all of you a project that I have been working on and off for a few years now that I feel is ready to be shared, but first, some context: For years I had always wondered how the TI BASIC and XB games would have worked differently if these had been compiled or simply implemented on a faster system. Around 2008 I found a game development package called DarkBASIC Professional that featured a BASIC IDE to create 2d and 3d EXE (compiled, as in fast) games on Windows systems. The BASIC syntax reminded in many ways to console and Extended BASIC but the lack of decent documentation at that time did not give me the confidence to write anything more than a few lines of simple code. Years later, around 2013 I came back to the developer company's web site and found a larger user base, more code samples and even two large tomes of books that thoroughly documented the language. I went ahead and purchased the books and as I learned the 2D graphic features, I started to get an idea of the project I wanted to accomplish. And that's how TI99E originated. TI99E consists of a set of functions developed using the DBPro IDE to simulate the high-resolution graphics, color, string and numeric, input and output functions of the Texas Instruments TI-99/4A computer. DBPro is a free, open-source BASIC programming language suitable for creating Windows applications and games. TI99E programs are developed using the editor and compiler included with the DBPro software. This development environment was created primarily to simulate, as faithfully as possible, writing graphic programs that look and feel like those originally written for the TI-99/4A in TI BASIC or Extended BASIC but without the speed or technical limitations. It also includes additional features that were not available in the original TI BASIC but that enhance the experience of coding TI graphical programs. TI99E is not an emulator; it also does not simulate TI-99 sound directly (it does through .wav files), or many other input-output functions, or file processing. Programs created in TI99E become EXE files for Windows; the BASIC source code is not compatible with the original console, and it is not intended to create programs that run on the original console. TI99E simulates and enhances the following features of the Texas Instruments TI-99/4A computer: - 256 x 192 display size for high resolution graphics - 24 rows x 32 columns screen size for regular ASCII character graphics - Exact replica of the entire ASCII character set from the TI-99/4A - Customizable ASCII characters - 16 colors available for graphics, with multiple color sets - Sprite graphics with auto-motion capabilities - Implementation of sprite collision, magnification, motion, location, position, and distance - Implementation of the TI BASIC graphic subprograms (CHAR,HCHAR,VCHAR,SPRITE,COINC,PATTERN,POSITION,LOCATE,MOTION,etc) - No missing sprite collisions - Modified implementation of Input and Output instructions such as PRINT, INPUT, DISPLAY AT, ACCEPT AT, CALL KEY and CALL JOYST - Math functions using radians instead of degrees: SIN, COS, TAN - String functions such as SEG$, RPT$ - Numeric functions such as SGN, MIN, MAX - Plus, many new features that were not available in the original system: o Up to 1,000 moving sprites at once - yes, and at a fluid 60FPS o Over 1,000 customizable characters and 120+ color sets o Ability to change color to individual characters instead of sets o Ability to create multi-color sprites o Ability to create multi-color characters o Ability to create animated sprites o Individual sprite magnification o Ability to hide sprites and keep them active o No 4-sprite max in horizontal line limitation o Fast, compiled programs o Full-featured Sprite Editor – Supports single and multicolor sprites, load, save, reverse, rotate, mirror, copy, paste and magnify using keyboard or joystick inputs. o Conversion programs to simplify converting original BASIC or XB code into TI99E I call it the TI BASIC that I always wanted. Below you will find the link to the TI99E system, including a Quick installation guide PDF, technical documentation PDF and all the necessary software: - The DBPro IDE - Direct X 9.0C runtime files – required for the EXE programs to run on newer versions of Windows - The TI99E BASIC project files - Sprite Editor – created with TI99E – includes EXE and source code - Conversion Programs – with instructions - Many Showcase programs ready to run and with their source code I recommend using the built-in help files in the TI99E editor instead of the technical documentation PDF. The help files are more complete, updated and organized, plus it is part of the IDE, which is a big plus. The help system includes sample code to test every documented function which, in addition to the showcase programs, is extremely useful to quickly learn the ins and outs of TI99E. The help system is accessible with F1. Just follow the Readme instructions for more details. I really hope you enjoy using this system I created with a lot of care, as a tribute to my beloved TI-99 4/A. https://drive.google.com/drive/folders/1XKvWir9pgkUMoSZJWuHTE6_qKzWi7y7R?usp=sharing
  • Create New...