-
Posts
548 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Community Map
Everything posted by SteveB
-
I compile my 560 line XB game with a single Control-B keystroke in 22 sec in TiCodEd, without emulator reboot. How do you count time against key-strokes?
-
ACK ... it works with my PNG files, both from GIMP and Raphael itself. Thank you! Steve
-
It seems that the PNG import does not respect the transparent color? When I create a bitmap in Raphael and export it in PNG, GIMP recognizes the transparency. When I import the same PNG again in Raphael, the background gets black, independent of the currently selected colors. Could this be added? I am using GIMP to resize for different distances, but can't get the result back in. Thank you Steve
-
Introducing Structured Extended BASIC and TiCodEd
SteveB replied to SteveB's topic in TI-99/4A Development
Hi Dan, the 92 pages "Beginners Manual" really describes things in details as a tutorial, aimed at the "XB returner", and describes every concept and function up to creating your own module. Be aware that this manual is based on version 2.2 and needs an update. Some details have changed. The TiCodEd.pdf in contrast is an up-to-date and rather compressed overview and all changes since 2.4 are marked with a bar on the right. Discounting the title page, the index, the licence and the appendices, only 15 pages of TiCodEd information remain ... Feel free to ask any question, I'm happy to help. I am too close to the program to anticipate which ideas and concepts are not as intuitive as I think they are... and then Preferences-Dialog and Project-Page got quite crowded over time. Steve -
Introducing Structured Extended BASIC and TiCodEd
SteveB replied to SteveB's topic in TI-99/4A Development
It is time to bring back this forgotten thread .. over the last 5 months I did quite some projects and they usually lead to some ideas for TiCodEd. My journey to TMS9900 Assembly started when using the lower 8k for the dictionary of my WordSearch -Game. Since I couldn't upload the dictionary directly, I learned about DATA and the TEXT in assembly files. And AORG. And referencing a label to get entry-points to sections of my dictionary. I lost my "respect" of Assembly Language and started coding the Multicolor Library, now supported with TiCodEd and switched from the ASM994a Assembler to the tiny commandline Xa99 by Fred Kaal. With his approval I included it in the TiCodEd distribution to automate the compiling even more, just have a look at the attached video. Also the Tank Combat challenge led to some improvements. Now the labels are checked for uniqueness. At this point I want to thank the community for the feedback I received. I try to include whatever fits in the general concept. What's new in Version 2.5? SXB: There is a new keyword CONST to define a constant in SXB, which will be substituted in the XB code, i.e. "CONST MaxRows = 10" Editor: New function "Replace Identifier" Util Menu: "Edit TIFILES" is an application on it's own to edit TI-FILES/V9T9 Data files FIXED/VARIABLE and DISPLAY/INTERNAL, see below. Programs can now be saved in V9T9 in addition to the default TI-FILES format Integration: New option to automatically copy the XB code to the Clipboard on successful build if you don't use the integration For the use of the BASIC Compiler Assembly support the CALL LINK routines can be generated in lowercase Various smaller bugfixes and library updates. Release 2.5 is available for Windows (64 and 32 bit) and Linux (x64) at https://lizardware.de/ Some more details: The TIFILES Editor: I will post a detailed introduction over in TI-99/4A Computers as this is not just for developers. You can now load and edit TIFILES and V9T9 files created by a BASIC program in DISPLAY and INTERNAL format. DISPLAY files can be edited in regular text-editor, whereas INTERNAL files have more structure and can be edited in an Excel-like grid. These two type are so different that they can't be changed, whereas all other parameters like record-size, header-type, filename and FIXED/VARIABLE may be changed .. Don't forget to tell your program about the changes. Advanced Integration (Windows only): By switching from the Windows GUI program ASM994a to Xa99 the external assembler can now be controlled by TiCodEd. With Classic99 this makes a really nice combo. Just configure in Edit/Settings the Integration to Classic99 and select a device-name to be used in the emulator for your FIAD Program Directory. Then adjust, if needed, the full path to XA99.exe. TiCodEd will create a framework for your automation on the Project Page, which can be adjusted if you have special requirements. You may re-generate the defaults by deleting the script completely and double-click the editor window. See the following video ... all keyboard inputs are automatic, I just use mouse. Pressing Ctrl-B or click the menu Export/Build Project will now do the complete compile included linking and saving as EA5 and XB. Have fun! Steve -
TIFILES DV80 to ".txt" and back again
SteveB replied to InsaneMultitasker's topic in TI-99/4A Computers
DV and DF files are quite simple, I just wrote routines to load and save them for editing in the upcomming TiCodEd version 2.5 ... but this was for in-place editing of DV, DF, IV and IF TIFILES/V9T9 files, not for converting, not for batch processing. If you do Pascal (FPC, Lazarus, Delphi) you may re-use my code for a conversion program or as a blueprint for any other language. Steve -
I think the receiver should determine the operations, i.e. A% = V% / 2 ! Integer A = V% / 2 ! Float CALL CHAR(%I+1,"FFAAFF") ! Integer PRINT SIN(%D / 100) ! Float PRINT %D / 100 ! Float (as we don't know any better) What do you think? Would this be possible? I agree, the more Integer can be used, the more speed we will gain...
-
From the "COMBAT XB COMPETITION": Hi Rich, I think this topic deserves an own thread to discuss, this is an amazing project! Would you like to share your approach in more detail? When I look at any XB, I can't remember a single CALL that expects a floatingpoint number. HCHAR, SOUND, COLOR, SPRITE ... all integer parameters. Only the arithmetic functions require floats. Avoiding those BLWP @XMLLNK DATA CFI would really save a lot of time. I mean, in the program they are unquoted strings, will be converted to Radix-100, transfered to the FAC, then converted by XMLLNK/CFI to integer, where it could be just a 16bit MOV in the first place.... When I look at the way TI stores a program in tokens I see 1. Numeric Variables and numeric literals as "unquoted strings": X=123 -> 58 BE[=] C8[Unquotedstring] 03[length] 31 32 33 2. String variables and string literals as "quoted strings": A$="Hello." -> 41 24 BE[=] C7[Quotedstring] 06[length] 48 65 6C 6C 6F 2E The introduction of integer-variables would require a third pair, i.e. N%=165 -> 4E 25 BE[=] C6[SignedInteger] 00 A5 >C6 is not used by XB, but I am not sure which additional token are already taken by ABASIC, I couldn't find a token-list including them ( @9640News ?) I would be happy to include something like this in TiCodEd. I am rooting hard for your project! Steve
-
TiCodEd has the option to write MERGE files, also in the Mac version. I write the MERGE format as the input for Harry's compiler. For windows you may also use my LibXBTKN64.dll from another program to write a tokenized MERGE file. In general it should be possible to build the shared library also on Linux and Mac, but I have not received much demand for this yet.
-
Congratulation Retrodroid! I did not anticipate that the enemy would "sit and fire" even if I am not in range ... that confused my control three out of five times .. Much of my code did not even run for this wrong assumption, let me drive directly in front of your cannon. And what happened at 3:2 ... my tank just cycling in the left upper corner .. I don't know. I had this twice in testing but could not figure out, what goes wrong there. I had the picture of an armed roach .. how would it get along with limited knowledge of the surrounding and just some basic instincts? My control has three states: Immediate: Enemy is in range and it is shoot, turn or evasion Intercept: Enemy has been seen and needs to be intercepted somehow. I project the current course for up to ten moves, not expect the enemy to stop and "wait", my biggest mistake. Cruise: Patrol the field by constructing a path in a string to follow, until the enemy comes into sight. I use the string as well to plan an interception for the time I turn and lose sight of the enemy for a maneuver. I am fine with @Vorticon publishing my code for other to see ... even though it turned a little ugly while I progressed and learned, because I didn't rewrite older code when introducing new subroutines. Starting anew would produce cleaner code without any doubt.
-
“Hey listen! I think we’ve got enough problems on our own having you shooting at us, so if you could avoid laying your problems on us as well, I think we’d all find it easier to cope!”
-
As a preparation to read and write INTERNAL files I created a (Lazarus Pascal-) library to read and write Radix-100 values, used by various calculators, the TI CC-40 and the TI-99/4a. I created a test-program that converts Radix-100 to hex-strings and vice versa. I implemented two conversions, one to/from text and one to/from float type "Extended" to use in calculations. The later one may have minimal rounding issues, i.e. 1.12 may get 1.11999999999 due to the different kinds of mantissa encoding. Even if you do not plan to do Pascal programming with Radix-100, this can still be used as a stand-alone tool if you deal with Radix-100 numbers. A binary for Win64 is included, it should compile on all platforms supported by Lazarus. It has been tested against the examples in the Editor/Assembler Manual page 279, @Lee Stewart Appendix L of his fbForth 2.0 manual range boundaries and some other experiments I did, but it still may contain errors. You can find it here: https://github.com/SteveB69/Radix100Pas Cheers Steve
-
I feel like a schoolboy. Test completed, some minutes left. You know it ain't perfect ... but were to start to improve it?
-
Well, the metric system is much more established in the US than most people know or admit to ... just have a look:
-
.. it surely does.... 😉
-
Feedback on gifting TI-99/4A equipment in a Will
SteveB replied to jmazzy's topic in TI-99/4A Computers
Sorry, the soldering is not lead free... environmentally not a great idea. -
I use the hidden sprite frequently and had no reason to look for alternatives yet.
-
Could use some blood splashing....
-
Just looking, not touching ... I just want to read what is on the screen ... if the compiler is ready or reported an error ... still no?
-
Actually not. I am blessed with naivety ... I I really knew what awaited me, I would not have started the most thrilling things in my life. As this bears absolutely no urgency, we might share some ideas on one of the Saturday Pandemic-Calls, you also occasionally join...
-
I usually use Windows and the keyboard-integration of TiCodEd use the Win32-API, so this feature is only available on Windows. If someone joins me for Linux "sending keystrokes from one app to another" I would try it there as well, but I am afraid this could be difficult as there are so many GUI Toolkits, Window-Manager etc. I don't have MacOS myself and @grammostola and I had not managed to get Lazaurs apps running on recent Apples, namely the M2. I would love to see an emulator where I can read the VDP RAM and send keyboard and joystick inputs...
-
Thank you for the hint ... I am not sure if I will dive down the CPU/UDP way. I don't think I would be able to find my way to VDP RAM. I am more the kind of an application developer than a system developer. We will see .. My current approach works more or less with all emulators, as long you can identify the window to send the keys to. I will test in on @PeteE's BuLWiP emulator as soon as I get a pre-compiled version. I might test the option to use the clipboard, thank you for the hint. Perhaps you re-consider the IPC / Shared-Memory thing one day when you are bored ... okay, unlikely.
-
This link gives me a 404 Error ...
-
As Rich always emphasize, RXB runs on the unexpanded console ... so I guess it does not use the lower 8k at all when present. I tested some of my games with RXB, mainly my wordsearch which stores the vocabulary there.
-
Now that the general wishlist has been opened... I would love to see an emulator with IPC and/or Shared Memory .. right now I can send keyboard codes to Classic99 and other emulators, which is error-prone. I have no way of reading the screen to get a feedback. Reading access to the VDP RAM (and CPU RAM) would be great. This would also open the possibility to use the TI for AI experiments, let the PC learn to play some games.
