Difference between revisions of "Formats"

From Ninerpedia
Jump to navigation Jump to search
Line 71: Line 71:
| 0x00
| 0x00
| Background
| Background
| 0xFA
| Flags
| colspan="2" | Color 0
| colspan="2" | Color 0
| colspan="2" | Color 1
| colspan="2" | Color 1
Line 110: Line 110:
where each color word is defined as follows
where each color word is defined as follows


{| class="plainc"
{| class="plainbits"
|-
|-
! style="width:2em" | 0  
! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 !! 11 !! 12 !! 13 !! 14 !! 15  
! style="width:2em" |1  
! style="width:2em" |2  
! style="width:2em" |3
! style="width:2em" | 4
! style="width:2em" | 5
! style="width:2em" | 6
! style="width:2em" | 7
! style="width:2em" | 8
! style="width:2em" | 9
! style="width:2em" | 10
! style="width:2em" | 11
! style="width:2em" | 12
! style="width:2em" | 13
! style="width:2em" | 14
! style="width:2em" | 15
|-
|-
| 0
| 0
Line 144: Line 129:
and each line entry is
and each line entry is


{| class="plainc"
{| class="plainbits"
|-
|-
! style="width:2em" | 0  
! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 !! 11 !! 12 !! 13 !! 14 !! 15  
! style="width:2em" |1  
! style="width:2em" |2  
! style="width:2em" |3
! style="width:2em" | 4
! style="width:2em" | 5
! style="width:2em" | 6
! style="width:2em" | 7
! style="width:2em" | 8
! style="width:2em" | 9
! style="width:2em" | 10
! style="width:2em" | 11
! style="width:2em" | 12
! style="width:2em" | 13
! style="width:2em" | 14
! style="width:2em" | 15
|-
|-
| colspan="4" | Color
| colspan="4" | Color

Revision as of 11:32, 20 October 2011

We have various format definitions relevant for the TI or Geneve.

ROM dump formats

ROM dumps are the contents of the memory chips in the console or in cartridges. ROM dumps may be plain dumps, which means they reflect the contents of the chip in an unchanged way, or headered dumps where additional metadata defines the semantics of this dump in a header section at the beginning.

Dumps are specifically important for emulators, but also for modifying cartridge contents, or for running cartridges in an environment without cartridge slot (like the Geneve or the TI-99/4P aka SGCPU).

Plain dumps

Plain dumps do not define their contents by metadata, therefore care must be taken to apply these contents at the correct locations. The dumps are organized as sequences of octets, not of words, so there is no endianness. (This may be an issue when exchanging data between different platforms, as the TI is a big-endian platform, whereas Intel platforms are little-endian.)

Dumps may be fragmented or organized in application-specific ways. It is up to the user of the dumps to correctly arrange the dumps.

Emulators make use of memory dumps. For MESS, we have one dump for the 8 KiB system ROM, and one dump for the 24 KiB console GROMs (all in one continuous file). Cartridges have two ROM dumps (up to 8 KiB each) and one GROM dump file of up to 40 KiB.

For MESS, there is a convention for cartridge ROM dumps:

  • ROM dumps are named like "dumpc.bin"; the second bank is called "dumpd.bin"
  • GROM dumps are named like "dumpg.bin"

From version 0.131 on, MESS makes use of ROM dump packages which simplifies the handling of the dumps.

Headered dumps

The most often used headered ROM format is the GRAM Kracker format. This format was introduced for copying cartridges to image files so that their contents could be altered, they could be loaded into expansion cards, or that Geneve users could carry on using the cartridges without a cartridge slot.

File formats

File images

The TIFILES format is one of the most frequently used formats when we are concerned with file transfer. This file format is a headered, uncompressed format which contains the file types and other metadata which are important in the TI-99 file system.

Usually, TIFILES encoding is used when files are transferred to/from a PC, and stored on FTP servers.

Disk images

Disk images are required for usage in emulators.

The Sector Dump Format, also known as v9t9 format, is a consecutive sector dump. It is used in the MESS emulator for installing disk images. It contains all sectors concatenated as one byte stream, starting with sector 0 and ending with the highest sector number, like 359 for SSSD disks or 1439 for DSDD disks.

The Track Dump Format, also known as PC99 format, is a track dump. It is used in the PC99 emulator. Unlike v9t9, the PC9 format includes all track data and is therefore about 50% larger.

Emulate Files

Emulate files are actually disk images usable by the Myarc HFDC controller. With the possibility of using a hard drive, the problem appeared that many programs assume to be loaded from disk drive 1. The emulate file can be mounted and emulate the disk drive.

Other images

Files on FTP servers ending with ".max" are most probably scanned manuals in "PaperPort" format. There is a viewer on ftp.whtech.com. If you want to convert this into PDF, install the PaperPort viewer and print the file to a PDF printer, or print Postscript to a file and convert the file.

TI-99 File systems

We have file systems for various devices:

Each of them has its specifics, but in many aspects they are similar.

Content formats

Images for MyArt (Geneve painting program) are saved in the following format:

0 1 2 3 4 5 6 7
0x00 Background Flags Color 0 Color 1 Color 2
0x08 Color 3 Color 4 Color 5 Color 6
0x10 Color 7 Color 8 Color 9 Color 10
0x18 Color 11 Color 12 Color 13 Color 14
0x20 Color 15 Line Line Line
... ... ... ... ...

where each color word is defined as follows

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 Red 0 Blue 0 0 0 0 0 Green

and each line entry is

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Color 0 0 0 Length

where length can be any value from 0 - 511. Each line element is a sequence of pixels of the given color and the given length, extending to the right. The next line element is painted one position to the right of the end of the previous one. Each screen line must have a list of line elements that add up to its length exactly, so they must not reach beyond the right border of the screen. This allows the painting program to know when a line is complete and the painting continues in the next screen row.