Jump to content

Photo

TI-99/4A development resources

TI-99/4A Forth Extended Basic Books Game Development Emulators VDP9918 TMS9900 Compilers devres

320 replies to this topic

#251 kl99 OFFLINE  

kl99

    Dragonstomper

  • 865 posts
  • Location:Vienna, Austria

Posted Tue Feb 9, 2016 11:27 AM

 

Is this a dedicated manual by TI or do you mean the known GPL Programmer's Guide? I would be very interested to read such a manual.

 

Now I think you mean the GPL Interface Specifications for the 99/4 Disk Peripheral. That can be read here:

ftp://ftp.whtech.com/datasheetsand manuals/Specifications/GPL Interface Specification for the 99_4 Disk Peripheral V2.0 03-28-1983.pdf

ftp://ftp.whtech.com/datasheetsand manuals/Specifications/gpl interfce specs for 99-4 disk peripheral.pdf

ftp://ftp.whtech.com/datasheetsand manuals/Datasheets - TI/TI99 TI GPL Interface Specs for Disk Peripheral.pdf

Cyc Users:
Y:\vendors\ti\internal\diskper\gpliface\gpliface.pdf

 



#252 Ksarul OFFLINE  

Ksarul

    Quadrunner

  • 5,128 posts

Posted Tue Feb 9, 2016 1:58 PM

Those may be the right ones, Klaus (I know I put some of them onto WHT), but he might have been referring to another one, which was why I asked the question about it.



#253 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,921 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Jun 9, 2016 5:28 PM

Can we add a reference or a thread or two on RLE encoders/decoders?  I have been trying to find something and turning up nothing (my search foo is weak.)



#254 Ksarul OFFLINE  

Ksarul

    Quadrunner

  • 5,128 posts

Posted Fri Jun 10, 2016 7:38 AM

Here's a nice little explanation of the RLE format. . .



#255 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,921 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Fri Jun 10, 2016 2:26 PM

Here's a nice little explanation of the RLE format. . .

 

Thanks.  I thought I remember some code examples floating around the forum.  I am going to play with some chunked encoding and see what kind of output I can produce.



#256 cbmeeks OFFLINE  

cbmeeks

    Moonsweeper

  • 408 posts
  • Location:Hixson, TN

Posted Mon Jun 13, 2016 12:43 PM

 
Thanks.  I thought I remember some code examples floating around the forum.  I am going to play with some chunked encoding and see what kind of output I can produce.

Correct. I typed that wrong. But that's what I meant.

Wrong quote. Stupid mobile site. Please delete since I can't.

Edited by cbmeeks, Mon Jun 13, 2016 12:44 PM.


#257 Asmusr ONLINE  

Asmusr

    River Patroller

  • 3,032 posts
  • Location:Denmark

Posted Sat Jun 18, 2016 1:04 AM

Can we add a reference or a thread or two on RLE encoders/decoders?  I have been trying to find something and turning up nothing (my search foo is weak.)

 

Tursi's Convert9918 program can encode the output in RLE is this simple format:

 

Count Byte:

- if high bit is set, remaining 7 bits indicate to copy the next byte that many times
- if high bit is clear, remaining 7 bits indicate how many data bytes (non-repeated) follow

 

Here's a Java program to encode a generic file in this format on the PC:

import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;

/**
 * Created by Rasmus on 12-06-2016.
 */
public class RLE {
    //
    // Count Byte:
    // - if high bit is set, remaining 7 bits indicate to copy the next byte that many times
    // - if high bit is clear, remaining 7 bits indicate how many data bytes (non-repeated) follow
    //

    public static String APPLICATION_NAME = "RLE v. 1.0";

    public static void main(String[] args) {
        new RLE();
    }

    public RLE() {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setFileFilter(
                new FileNameExtensionFilter("Binary Files", "bin")
        );
        fileChooser.setMultiSelectionEnabled(false);
        fileChooser.setCurrentDirectory(new File("."));
        if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
            String fileName = file.getName();
            int p = fileName.lastIndexOf(".");
            if (p != -1) {
                fileName = fileName.substring(0, p);
            }
            try {
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                FileInputStream in = new FileInputStream(file);
                int n = 0;
                int count;
                byte[] buffer = new byte[128];
                int i;
                int last = -1;
                int current = in.read();
                while (current != -1) {
                    if (last != -1) {
                        if (current == last) {
                            // Same byte
                            count = 1;
                            while (current == last && count < 127) {
                                count++;
                                last = current;
                                current = in.read();
                            }
                            // Output run of identical bytes
                            out.write(0x80 | count);
                            out.write(last);
                            n += 2;
                            last = current;
                            current = in.read();
                        }
                        else {
                            // Different bytes
                            count = 0;
                            i = 0;
                            buffer[i++] = (byte) last;
                            while (current != last && current != -1 && count < 127 ) {
                                count++;
                                buffer[i++] = (byte) current;
                                last = current;
                                current = in.read();
                            }
                            // Output different bytes
                            out.write(count);
                            out.write(buffer, 0, count);
                            n += 1 + count;
                        }
                    }
                    else {
                        last = current;
                        current = in.read();
                    }
                }
                out.write(0);
                fileChooser.setSelectedFile(new File(fileName + "-rle.bin"));
                fileChooser.setFileFilter(
                    new FileNameExtensionFilter("Binary Files", "bin")
                );
                fileChooser.setMultiSelectionEnabled(false);
                if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
                    File outputFile = fileChooser.getSelectedFile();
                    try {
                        FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
                        fileOutputStream.write(out.toByteArray());
                        fileOutputStream.close();
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, e.getMessage(), APPLICATION_NAME, JOptionPane.ERROR_MESSAGE);
                        e.printStackTrace();
                    }
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, file.getName() + ": " + e.getMessage(), APPLICATION_NAME, JOptionPane.ERROR_MESSAGE);
                e.printStackTrace();
            }
        }
    }

}
 

And here's a TMS9900 assembly snippet to decode this format:

*      RLE decode from VDP RAM
       LI   R0,>2000                   ; VDP address of RLE encoded data
       BL   @VRAD                      ; Setup read address
       LI   R1,MAP                     ; Destination in CPU RAM
RLEDC1 MOVB @VDPRD,R2                  ; Get count byte
       JEQ  RLEDC5                     ; If zero we're done
       JLT  RLEDC3                     ; If negative it's a run
*      Different bytes
       SRL  R2,8                       ; Shift to LSB
RLEDC2 MOVB @VDPRD,*R1+                ; Get byte and write to destination
       DEC  R2                         ; Count down
       JNE  RLEDC2                     ; Loop
       JMP  RLEDC1                     ; Done with this sequence
*      Identical bytes
RLEDC3 ANDI R2,>7F00                   ; Reset high bit
       SRL  R2,8                       ; Shift to LSB
       MOVB @VDPRD,R0                  ; Get byte that should be repeated
RLEDC4 MOVB R0,*R1+                    ; Write byte to destination
       DEC  R2                         ; Count down
       JNE  RLEDC4                     ; Loop
       JMP  RLEDC1                     ; Done with this sequence
*      Return
RLEDC5 B    *R11                     

If you want to decode from CPU RAM instead that should be easy to change.

Attached Files



#258 Asmusr ONLINE  

Asmusr

    River Patroller

  • 3,032 posts
  • Location:Denmark

Posted Sat Jun 18, 2016 1:10 AM

Now I have been looking for a LZ77 decoder. I found this in the Colecovision forum, and I'm considering porting the Z80 code to TMS9900. But what I really need is a "sliding window" format that can be used for streaming where you don't have to keep the entire decoded file in memory.



#259 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,921 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Jun 18, 2016 2:34 AM

Now I have been looking for a LZ77 decoder. I found this in the Colecovision forum, and I'm considering porting the Z80 code to TMS9900. But what I really need is a "sliding window" format that can be used for streaming where you don't have to keep the entire decoded file in memory.

 

Ah, now here is something to sink your teeth into, thank you.

 

I need to be able to decode a stream which can repeat already-decoded frames without maintaining a lot in memory.  I am playing with a few ideas with everything on paper right now in pseudo-code.



#260 jedimatt42 OFFLINE  

jedimatt42

    Stargunner

  • 1,845 posts
  • Location:Beaverton, OR

Posted Fri Sep 16, 2016 10:48 AM

There is a resource somewhere on this forum that is a thread in which matthew180 describes his approach to assembly programming for games. Game loops, bypassing internal VDP routines, sub-routine call approach, etc... I cannot seem to find it anymore...

 

do threads expire? 

does anyone know where it is? If so please reply with the link. 

can it be pinned in post #1 under assembly resources? 

 

-M@



#261 Asmusr ONLINE  

Asmusr

    River Patroller

  • 3,032 posts
  • Location:Denmark

Posted Fri Sep 16, 2016 11:22 AM

There is a resource somewhere on this forum that is a thread in which matthew180 describes his approach to assembly programming for games. Game loops, bypassing internal VDP routines, sub-routine call approach, etc... I cannot seem to find it anymore...

 

do threads expire? 

does anyone know where it is? If so please reply with the link. 

can it be pinned in post #1 under assembly resources? 

 

-M@

 

http://atariage.com/...bly-on-the-994a



#262 jedimatt42 OFFLINE  

jedimatt42

    Stargunner

  • 1,845 posts
  • Location:Beaverton, OR

Posted Fri Sep 16, 2016 3:46 PM

Nice! Thank you...  when I search matthew180's content, I get this message:    (Search limited from 17-September 15)

 

Clearly that is why I could not find

 

   http://atariage.com/forums/topic/162941-assembly-on-the-994a 

 

Linking in the top of this thread would be really good.  This is right up there, to me, with the Bruce Harrison - art of assembly work.  And an important contrasting approach as well. 

 

-M@



#263 jedimatt42 OFFLINE  

jedimatt42

    Stargunner

  • 1,845 posts
  • Location:Beaverton, OR

Posted Sun Sep 25, 2016 12:16 PM

Fred Kaal has updated his ROM only Editor assembler cartridge suite. In addition to the recent 80/40 column changes he has added some editor key-presses for convenient line editing including an undo.

Also, there is a debugger included! 

 

http://www.ti99-geek...das4/edas4.html

 

-M@



#264 HackMac OFFLINE  

HackMac

    Chopper Commander

  • 164 posts
  • Skywalker
  • Location:Germany

Posted Fri Oct 7, 2016 4:14 AM

Today I found a book with information about the TMS9900 family. It is recently uploaded on bitsavers' server (second July 2016).

I think that this book is not available on the whtech server, so I will leave a link to that resource:

MP702_TMS9900_Family_System_Development_Manual_1977.pdf

 

(It would be great if some of the Sysops can upload it on whtech.)



#265 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 3,530 posts
  • Location:Eagan, MN, USA

Posted Fri Oct 7, 2016 7:02 AM

Fred Kaal has updated his ROM only Editor assembler cartridge suite. In addition to the recent 80/40 column changes he has added some editor key-presses for convenient line editing including an undo.

Also, there is a debugger included! 

 

http://www.ti99-geek...das4/edas4.html

 

-M@

 

I wonder if these carts will be made available for sale on Arcadeshopper.com...



#266 jedimatt42 OFFLINE  

jedimatt42

    Stargunner

  • 1,845 posts
  • Location:Beaverton, OR

Posted Fri Oct 7, 2016 10:37 AM

Fred makes images available for a variety of hardware vehicles. This particular bundle EA-IV is only 32k, and works nicely from the Flashrom99.

#267 --- Ω --- OFFLINE  

--- Ω ---

    Hexacorerunner

  • 13,615 posts

Posted Fri Oct 7, 2016 10:45 AM

Fred makes images available for a variety of hardware vehicles. This particular bundle EA-IV is only 32k, and works nicely from the Flashrom99.

 

 Yes, thank you again for converting for FR99 use!  It's awesome to be able to QUICKLY edit things like the FAVS file for Stuart's Internet browser.  80 columns ROCKS!

 

Other people love it too...  << LOOK HERE >>  it's been downloaded 50 times already!!  :-o  :thumbsup:



#268 jedimatt42 OFFLINE  

jedimatt42

    Stargunner

  • 1,845 posts
  • Location:Beaverton, OR

Posted Fri Oct 7, 2016 12:10 PM

 

 Yes, thank you again for converting for FR99 use!  It's awesome to be able to QUICKLY edit things like the FAVS file for Stuart's Internet browser.  80 columns ROCKS!

 

Other people love it too...  << LOOK HERE >>  it's been downloaded 50 times already!!  :-o  :thumbsup:

 

The one I converted was Fred's EA-II, with my hack of his 80 column EDIT 1... Fred has evolved things himself, and published EA-IV that has his 80 column support and improved editor keyboard shortcuts... I guess I'll fetch that and post it to the FR99 thread. Fred's changes since my hack are pretty cool. 

 

-M@



#269 RXB OFFLINE  

RXB

    River Patroller

  • 3,506 posts
  • Location:Vancouver, Washington, USA

Posted Sat Dec 3, 2016 2:10 AM

Why does the data on RXB in TI Development Resources say 2012?

 

RXB 2015 has been out since Nov 2014?

 

I am working on  RXB 2016 right now? 

 

Even Classic99 has RXB 2015E installed in it for almost 6 months or more?



#270 retroclouds ONLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,687 posts
  • Location:Germany

Posted Sat Dec 3, 2016 9:47 AM

Why does the data on RXB in TI Development Resources say 2012?

 

RXB 2015 has been out since Nov 2014?

 

I am working on  RXB 2016 right now? 

 

Even Classic99 has RXB 2015E installed in it for almost 6 months or more?

 

Hi Rich,

 

sorry about that. I've been neglecting the Development Resources thread for quite some time. Actually I requested a few folks if they want to take over this thread, but no interest so far.

So I guess, it's sticking to me. That being said, If I do keep doing this thread the plan for the future is to update it 2x to 3x a year and to simplify it.

Believe it or not, but there's quite an amount of BBcode behind, and that makes updating quite a task.

 

Would appreciate if people ping me with the details on what they want to have added, as I don't have the overview of all new things that happened lately.

I'll update the thread this weekend. Regarding RXB, can you point me to the relevant posts, so I can include it. Thanks.

 

Cheers

Filip



#271 retroclouds ONLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,687 posts
  • Location:Germany

Posted Sun Dec 4, 2016 12:28 PM

Thread updated:

1. Split sections into Software and Manuals/Tutorials.
Example: Renamed "Assembly Language" to "Assembly Language - Software" and added "Assembly Language - Manuals"

2. Some hyperlinks fixed and added
JS99er
* Member name adjusted
* Hyperlink to Github source code repository added

asm990
* Hyperlink was broken. Fixed that, new hyperlink added.

RXB
Removed link to RXB2012 on retroclouds site.
Waiting for link where latest version of RXB can be found. It probably is in some thread, but which one?
Would make sense to move this to GitHub ?

fbForth
Removed fbFort manual link to retroclouds page. Get latest version of fbForth in the thread instead.

3. Removed link to dropbox archive. The archive is no longer there, so.....

#272 retroclouds ONLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,687 posts
  • Location:Germany

Posted Mon Dec 5, 2016 1:18 PM

Thread update:
* Added missing RXB2015E link and included reference to RXB tutorial videos.

#273 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,199 posts
  • Location:Denmark

Posted Mon Dec 5, 2016 11:55 PM

Broken.


Edited by sometimes99er, Tue Dec 6, 2016 12:34 AM.


#274 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,900 posts
  • Location:Silver Run, Maryland

Posted Tue Dec 6, 2016 10:19 AM

Broken.

 

Yeah—All of the Hall-of-Fame links should be changed to start with the following URL:  “http://hof.ti99ers.org/”.

 

...lee



#275 retroclouds ONLINE  

retroclouds

    Stargunner

  • Topic Starter
  • 1,687 posts
  • Location:Germany

Posted Tue Dec 6, 2016 12:12 PM

ok, noted. Will be updated in the next few days. Collecting some more broken stuff first.





Also tagged with one or more of these keywords: TI-99/4A, Forth, Extended Basic, Books, Game Development, Emulators, VDP9918, TMS9900, Compilers, devres

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users