-
Content Count
1,055 -
Joined
-
Last visited
-
Days Won
3
Posts posted by kl99
-
-
Well, even when you consider such spacings a small, minor or even wrong things done by the real interpreter.
The whole purpose of this is to have one type of standard / reference (which can only be the real iron) for decoding a Basic Source Code Listing from a binary.
The hash code to identify unique / duplicates of a Basic Program will be based on the Basic Source Text rather than the binary file.
This hash code will further be used to bind a TiFile to meta data, instructions, other TiFiles, pdfs, pics, comments, or even whole forum threads to it.
To be able to use that same data in/from other tools the hash code for a Program has to be the same across all the tools.
A Hash code is completely different if there is a single bit or byte different.
Quoting myself from the Web99 Thread on why it would be wrong to generate a hash based on the binary file:
1. Basic Programs:
If you want to find out whether two Basic Programs are identical, you shouldn't do a binary comparison of their PROGRAM Files.
We are dealing with Memory Images, saved as PROGRAM Files, the binary data depends on what has been in VDP Ram and Ram when doing the SAVE Operation. And later totally depends on how the program was written/edited. Basic Programs are not stored in logical order. There is a Line Number Table which points to memory areas containing the content for that one line. That could be spread anywhere within a large area of memory. The computer adds the last edited line on top of its VDP Ram, and there is no resorting of any data during SAVE. As a result two people typing in the same program from a magazine (without any errors) will most probably result in two different binary PROGRAM Files representing the same Basic Source Code.
In other words two PROGRAM Files can be different on binary level, but still contain the same Basic Program in them. They should therefore be identified as duplicates to each other.
Rather you need to extract the Basic Source Code from those PROGRAM Files and compare those in order to find out whether they are identical or not. Such a Source Code comparison could even blend out different Line Numbers (10s instead of 100s,...) and different Variable Names (N$ instead of NAME$) in your comparison. Further the embedded assembler code that might be contained within the PROGRAM File should be safed as such to not be lost.
When calculating the Hash ID for Basic Files, we make it based on the Basic Source Code.So consider this a pre-step for features that will be coming.
-
xdt99 has astounding good results already. The only thing I could detect in this set of test files was that the spacing of the end of the line was not identical for some commands.
xdt99 v1.5.0
"22 RESTORE "
TI-99/4a Real Output:
"22 RESTORE"
The same is true if the statement ends with any of these tokens:
DELETE, END, NEXT, PRINT, STOP, SUBEND, SUBEXIT, TRACE, UNBREAK, UNTRACE.
The Output for XBCMD4 is even more identical to the LIST output on the TI screen than what LIST "CLIP" produces for this special characters test in Classic99.
Web99 was failing in some cases like Ti99Dir and TiImageTool. I already updated the code to have no single issue left.Any more known tools that decode a PROGRAM into the Basic Source Code? I think I have one in the PC99 Emulator, but besides that?
-
Here are some Examples of wrongly decoded statements:
TI99Dir:
31 OPEN #2:"WD1.TEST",SEQUENTIAL,DISPLAY,INPUT,VARIABLE
TiImageTool:
31 OPEN #2:"WD1.TEST",SEQUENTIAL,DISPLAY,INPUT,VARIABLE
Pc99 Bas2Asc:
31 OPEN #2:"WD1.TEST",SEQUENTIAL,DISPLAY,INPUT,VARIABLE
TI-99/4a Real Output:
31 OPEN #2:"WD1.TEST",SEQUENTIAL,DISPLAY ,INPUT ,VARIABLE
-
TI99Dir:
82 FOR C=1 TO-3
TI-99/4a Real Output:
82 FOR C=1 TO -3
-
TI99Dir:
48 DATA ""THIS HAS QUOTES""
Pc99 Bas2Asc:
48 DATA ""THIS HAS QUOTES""
TI-99/4a Real Output:
48 DATA """THIS HAS QUOTES"""
-
TI99Dir:
27 OPEN #23:"DSK.MYDISK.X",RELATIVE100,INTERNAL,UPDATE,FIXED
TI-99/4a Real Output:
27 OPEN #23:"DSK.MYDISK.X",RELATIVE 100,INTERNAL,UPDATE,FIXED
-
TiImageTool:
64 DISPLAY AT(R,C) SIZE(FIELDLEN) BEEP $
Pc99 Bas2Asc:
64 DISPLAY AT(R,C) SIZE(FIELDLEN) BEEP:X$
TI-99/4a Real Output:
64 DISPLAY AT(R,C)SIZE(FIELDLEN)BEEP:X$
-
TiImageTool:
74 PRINT 356; TAB (18);"NAME"
TI-99/4a Real Output:
74 PRINT 356;TAB(18);"NAME"
-
TI99Dir:
140 STR$=""""PHISHA""""
TiImageTool:
140 STR$="""""" PHISHA """"""
Pc99 Bas2Asc:
140 STR$="""" PHISHA""""
TI-99/4a Real Output:
140 STR$="""""" PHISHA""""""
-
TI99Dir:
190 STR$="" QHISHA""
Pc99 Bas2Asc:
190 STR$="" QHISHA""
TI-99/4a Real Output:
190 STR$=""" QHISHA"""
-
1
-
-
Here is something I have worked on the weeking.
It's some testfiles for un-crunching BASIC programs.
The txt files are the LIST output of those programs, so they are matching exactly the way the BASIC INTERPRETER does the uncrunching of each basic line of the program. (Classic99 was used with LIST "CLIP" to generate those txt files)
If you compare that to the available tools (TI99DIR, imagetool,...) you will see that all have some issues in recreating that same syntax.
Example:
Output from TI99dir of Line 4 of XBCMD14 ACCEPTVALIDATE("YN"):R$Output from TiImageTool of Line 4 of XBCMD1
4 ACCEPT VALIDATE ("YN"):R$while if you LIST the program in the TI99 you will see:
4 ACCEPT VALIDATE("YN"):R$XBCMD1 contains examples for XB commands from A-P
XBCDM2 contains examples for XB commands from P-Z
XBCMD3 contains quote examples
XBCMD4 contains all characters within strings from 0 to 255. Here the txt File fails for line 100 because it interprets some control character.The examples for XB commands are mostly taken from the XB Manual and are only extended by me if insufficient.
I will create some more testfiles and add them as Unit Tests to Web99, so in case i touch the code, I immediately see if I broke some behavior. Feel free to do the same for your projects or use the files to manually test your tool during development.Btw: The programs can be loaded, but running them makes no sense, their purpose is to find out if your Tool decodes a TiFile into the Basic Source Code the same way the Basic Interpreter does.
Please provide feedback if you want to use it, so I can provide you with updates.
-
1
-
-
-
-
-
-
-
i am interested in gaining hardware skills. iron tool is ready

count me in.
personal interest would be a working physical connection from TI expansion port towards another device to be able to halt/debug and do all kind of stuff like emulating 32k, ramdisks,...
or building a hardware device utilizing the maximum speed of a TI for I/O with another device (like pc or android).
-
schnoz-ola did I won.
where was shanghai? aaaah!-
2
-
-
I know sometimes99, however I thought having classic99 is what most visitors of the site are interested in. And that direct link I provided works now as well.
-
-
I contacted the guy on ebay, if he is interested in doing an interview for some newsletter. This guy was working right there at TI.
Also asked him, if he is willing to ship at least to US, and that he is limiting the outcome by limiting it to local pickup.
I could identify the lower of the two PEB cards lying around, which has to be a PCode Card.
But I can't find a match for the upper one, must be some unique Card.
-
3
-
-
What's your opinion on the stuff in the 99/8 auction?
- the cartridges with the custom labels are prototypes or not? those usually had different color cases afaik- what are these 2 cartridges labeled "SECURITIES"?
- can anyone read the cartridge label right below the one labeled SCOTT ADAMS ADVENTURE? It should be column 1, number 8. I can't map it to any known TI cartridge.
- the photo with the binders indicate some internal specification on the 99/8. could this be right? Further there are two binders on top right. anyone knows these?
- what are these 2 beige joysticks behind the 99/4a right next to the 2 speech synthesizers? I don't mean the mbx ones.
- can somebody figure out which types of peb cards are lying in front of the PEB?
- the device left to the 99/8 is a floppy for the 99/8? how is it interfaced, via hexbus?
- with no Armadillo Interface card there is no way to connect the 99/8 to the PEB, or did I miss that in the pictures?
Too damn this is local pickup only.
-
1
-
-
-
-
-
-
-
-
-
-

Test Files for Uncrunching/Parsing Basic Statements
in TI-99/4A Development
Posted
Thank you VERY much for this Testfiles. Currently checking Web99 against them