1

Temat: przerobienie ATR na rom, epr

Ktos wie jak przerobic plik atr,cas i inne atari  na plik wsadowy do epromu?

Dwa korce ziemniaków, gęsich jajek kopa, żeby móc to połknąć, tęgiego trza chłopa. GG3456993

2

Odp: przerobienie ATR na rom, epr

Atr to obraz dyskietki, Cas to ogólna nazwa jakiś tam danych. Ni w mordę nie nadaje się na obraz tym bardziej promu.

Polecam lekture Zientary: Podstawowe procedury systemu operacyjnego

Pewnie to znasz: http://atariki.krap.pl/index.php/Formaty_plik%C3%B3w

A to z Helpa A800win

Cartridge images are dumps of ROMs used in real cartridges.

The following table lists currently supported cartridge types:


Id    Machine    Size    Name
1    800/XL/XE    8    Standard 8 KB cartridge
2    800/XL/XE    16    Standard 16 KB cartridge
3    800/XL/XE    16    OSS '034M' 16 KB cartridge
4    5200    32    Standard 32 KB 5200 cartridge
5    800/XL/XE    32    DB 32 KB cartridge
6    5200    16    Two chip 16 KB 5200 cartridge
7    5200    40    Bounty Bob Strikes Back 40 KB 5200 cartridge
8    800/XL/XE    64    64 KB Williams cartridge
9    800/XL/XE    64    Express 64 KB cartridge
10    800/XL/XE    64    Diamond 64 KB cartridge
11    800/XL/XE    64    SpartaDos X 64 KB cartridge
12    800/XL/XE    32    XEGS 32 KB cartridge
13    800/XL/XE    64    XEGS 64 KB cartridge
14    800/XL/XE    128    XEGS 128 KB cartridge
15    800/XL/XE    16    OSS 'M091' 16 KB cartridge
16    5200    16    One chip 16 KB 5200 cartridge
17    800/XL/XE    128    Atrax 128 KB cartridge
18    800/XL/XE    40    Bounty Bob Strikes Back 40 KB cartridge
19    5200    8    Standard 8 KB 5200 cartridge
20    5200    4    Standard 4 KB 5200 cartridge
21    800    8    Right slot 8 KB cartridge
22    800/XL/XE    32    32 KB Williams cartridge
23    800/XL/XE    256    XEGS 256 KB cartridge
24    800/XL/XE    512    XEGS 512 KB cartridge
25    800/XL/XE    1024    XEGS 1 MB cartridge
26    800/XL/XE    16    MegaCart 16 KB cartridge
27    800/XL/XE    32    MegaCart 32 KB cartridge
28    800/XL/XE    64    MegaCart 64 KB cartridge
29    800/XL/XE    128    MegaCart 128 KB cartridge
30    800/XL/XE    256    MegaCart 256 KB cartridge
31    800/XL/XE    512    MegaCart 512 KB cartridge
32    800/XL/XE    1024    MegaCart 1 MB cartridge
33    800/XL/XE    32    Switchable XEGS 32 KB cartridge
34    800/XL/XE    64    Switchable XEGS 64 KB cartridge
35    800/XL/XE    128    Switchable XEGS 128 KB cartridge
36    800/XL/XE    256    Switchable XEGS 256 KB cartridge
37    800/XL/XE    512    Switchable XEGS 512 KB cartridge
38    800/XL/XE    1024    Switchable XEGS 1 MB cartridge
39    800/XL/XE    8    Phoenix 8 KB cartridge
40    800/XL/XE    16    Blizzard 16 KB cartridge
There are two formats of cartridge images: raw and CART.

The raw dump contains no information of how to handle the cartridge, thus you are prompted to choose its type each time you attach a raw cartridge. There is no special extension for raw cartridges, but most common are ROM and BIN (recommended is ROM).

The CART file (with CAR extension) contains information about cartridge type, so it can be attached without prompting you for the type. Additionally the CART format can be identified, because it contains the ?CART? signature at the beginning of the file.

Details of cartridge types

Type 1: Standard 8 KB cartridge
Standard 8 KB cartridge, that occupies 8 KB of address space between $A000 and $BFFF.

Type 2: Standard 16 KB cartridge
Standard 16 KB cartridge, that occupies 16 KB of address space between $8000 and $BFFF.

Type 3: OSS '034M' 16 KB cartridge
There are two types of OSS cartridges. Both are 16 KB and occupy 8 KB of address space between $A000 and $BFFF. The cartridge memory is divided into 4 banks, 4 KB each. One bank ('main') is always mapped to $B000-$BFFF. The other 3 banks are mapped to $A000-$AFFF. The current bank is selected by accessing a byte in $D500-$D5FF. Only 4 lowest bits of address are significant.

The '034M' scheme is the more complicated one. The main bank is D. An access to:

?    $D5x0 or $D5x1 selects bank A.

?    $D5x3 or $D5x7 selects bank B.

?    $D5x4 or $D5x5 selects bank C.

?    $D5x2 or $D5x6 is not useful. It disables ROM (there're $FF bytes in $A000-$AFFF).

?    $D5x8-$D5xF disables whole cartridge (enables computer's memory in address space between $A000 and $BFFF).

Type 4: Standard 32 KB 5200 cartridge

Standard 32 KB cartridge for Atari 5200, that occupies 32 KB of address space between $4000 and $BFFF.

Type 5: DB 32 KB cartridge

A 32 KB bank-switched cartridge. There are 4 banks. Bank D is mapped to $A000-$BFFF. Bank in $8000-$9FFF is selected by an access to $D500-$D5FF. Two lowest bits of address select bank A, B, C or D.

Type 6: Two chip 16 KB 5200 cartridge

In Atari 5200 there's 32 KB of address space reserved for the cartridge ($4000-$BFFF). A two chip 16 KB cartridge is mapped that way:

?    First 8 KB are mapped into lower 16 KB. Since an address line is not connected, $4000-$5FFF and $6000-$7FFF contain same data, which is first half of the cartridge image.

?    Similarly, second 8 KB are mapped into upper 16 KB.

Type 7: Bounty Bob Strikes Back 40 KB 5200 cartridge

The cartridge with "Bounty Bob Strikes Back" game uses very strange bank switching method:

?    Four 4 KB banks (A,B,C,D) are mapped into $4000-$4FFF. An access to $4FF6 selects bank A, $4FF7 - bank B, $4FF8 - bank C, $4FF9 - bank D.

?    Four 4 KB banks (E,F,G,H) are mapped into $5000-$5FFF. An access to $5FF6 selects bank E, $5FF7 - bank F, $5FF8 - bank G, $5FF9 - bank H.

?    The remaining 8 KB is mapped to upper 16 KB of cartridge address space in Atari 5200. That is, $8000-$9FFF and $A000-$BFFF contain same data.

Type 8: 64 KB Williams cartridge

The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D500 selects bank A, $D501 - bank B, etc. An access to $D508-$D50F disables the cartridge.

Type 9: Express 64 KB cartridge

The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D577 selects bank A, $D576 - bank B, etc. An access to $D578-$D57F disables the cartridge.

Type 10: Diamond 64 KB cartridge

The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D5D7 selects bank A, $D5D6 - bank B, etc. An access to $D5D8-$D5DF disables the cartridge.

Type 11: SpartaDOS X 64 KB cartridge

The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D5E7 selects bank A, $D5E6 - bank B, etc. An access to $D5E8-$D5EF disables the cartridge.

Type 12: XEGS 32 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each. Bank D (the last one) is always mapped to $A000-$BFFF. Two lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 13: XEGS 64 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each. Bank H (the last one) is always mapped to $A000-$BFFF. Three lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 14: XEGS 128 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each. Bank P (the last one) is always mapped to $A000-$BFFF. Four lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 15: OSS 'M091' 16 KB cartridge

This is the simpler one of OSS schemes. It uses only A0 and A3 address lines:

?    A3=0, A0=0 - $A000-$AFFF: bank B, $B000-$BFFF: bank A

?    A3=0, A0=1 - $A000-$AFFF: bank D, $B000-$BFFF: bank A

?    A3=1, A0=0 - disable cartridge

?    A3=1, A0=1 - $A000-$AFFF: bank C, $B000-$BFFF: bank A

Type 16: One chip 16 KB 5200 cartridge

16 KB cartridge for Atari 5200, that occupies 16 KB of address space between $8000 and $BFFF.

Type 17: Atrax 128 KB cartridge

This bank-switched cartridge occupies 8 KB of address space between $A000 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each. If a byte written to $D500-$D5FF has highest bit set, the cartridge is disabled. Otherwise four lowest bits select the bank mapped to $A000-$BFFF.

Type 18: Bounty Bob Strikes Back 40 KB cartridge

The cartridge with "Bounty Bob Strikes Back" game uses very strange bank switching method:

?    Four 4 KB banks (A,B,C,D) are mapped into $8000-$8FFF. An access to $8FF6 selects bank A, $8FF7 - bank B, $8FF8 - bank C, $8FF9 - bank D.

?    Four 4 KB banks (E,F,G,H) are mapped into $9000-$9FFF. An access to $9FF6 selects bank E, $9FF7 - bank F, $9FF8 - bank G, $9FF9 - bank H.

?    The remaining 8 KB is mapped to $A000-$BFFF.

Type 19: Standard 8 KB 5200 cartridge

Standard 8 KB cartridge for Atari 5200, mapped into $8000-$9FFF and $A000-$BFFF.

Type 20: Standard 4 KB 5200 cartridge

Standard 4 KB cartridge for Atari 5200, mapped into $8000-$8FFF, $9000-$9FFF, $A000-$AFFF and $B000-$BFFF.

Type 21: Right slot 8 KB cartridge

8 KB cartridge for Atari 800, mapped into $8000-$9FFF. Atari 800 was the only 8-bit Atari with a Right Cartridge slot, in addition to the Left Cartridge slot as present on all 8-bit Ataris.

Type 22: 32 KB Williams cartridge

The cartridge has 4 banks mapped to $A000-$BFFF. An access to $D500 selects bank A, $D501 - bank B, etc. An access to $D508-$D50F disables the cartridge.

Type 23: XEGS 256 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 32 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Five lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 24: XEGS 512 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Six lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 25: XEGS 1 MB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Seven lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF.

Type 26: MegaCart 16 KB cartridge

A 16 KB cartridge, that occupies 16 KB of address space between $8000 and $BFFF, and can be disabled by writing a byte with bit 7 set to $D500-$D5FF.

Type 27: MegaCart 32 KB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bit 0 selects one of two available banks, bit 7 disables the cartridge.

Type 28: MegaCart 64 KB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0 and 1 select one of four available banks, bit 7 disables the cartridge.

Type 29: MegaCart 128 KB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0,1,2 select one of 8 available banks, bit 7 disables the cartridge.

Type 30: MegaCart 256 KB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Four lowest bits select one of 16 available banks, bit 7 disables the cartridge.

Type 31: MegaCart 512 KB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Five lowest bits select one of 32 available banks, bit 7 disables the cartridge.

Type 32: MegaCart 1 MB cartridge

A bank-switched cartridge that occupies 16 KB of address space between $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Six lowest bits select one of 64 available banks, bit 7 disables the cartridge.

Type 33: Switchable XEGS 32 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each. Bank D (the last one) is always mapped to $A000-$BFFF. Two lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 34: Switchable XEGS 64 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each. Bank H (the last one) is always mapped to $A000-$BFFF. Three lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 35: Switchable XEGS 128 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each. Bank P (the last one) is always mapped to $A000-$BFFF. Four lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 36: Switchable XEGS 256 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 32 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Five lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 37: Switchable XEGS 512 KB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Six lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 38: Switchable XEGS 1 MB cartridge

This bank-switched cartridge occupies 16 KB of address space between $8000 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each. The last bank is always mapped to $A000-$BFFF. Seven lowest bits of a byte written to $D500-$D5FF select the bank mapped to $8000-$BFFF, bit 7 disables the cartridge.

Type 39: Phoenix 8 KB cartridge

An 8 KB cartridge, that occupies 8 KB of address space between $A000 and $BFFF, and can be disabled by an access to $D500-$D5FF.

Type 40: Blizzard 16 KB cartridge

A 16 KB cartridge, that occupies 16 KB of address space between $8000 and $BFFF, and can be disabled by an access to $D500-$D5FF.

Usage

Use File/Attach cartridge (Alt+C) to run the program on a cartridge.

As soon as you manage to run a raw cartridge image, you can convert it to the CART format for easier use (
Misc/Convert/ROM to CART).

Remember to detach a cartridge (File/Detach cartridge or the ROM Image Selections dialog box) before using software from disk images. Most Atari software does not work if a cartridge is installed in computer.

Ostatnio edytowany przez pajero (2008-07-18 23:28:27)

3

Odp: przerobienie ATR na rom, epr

Część całodyskowych atr-ów dałoby się w dość prosty sposób. Trzeba napisać bootloader podmieniający procedury sio, tak żeby kopiowały z EPROMu w karcie (zamiast odczytu sektora dyskietki) i wgrać go w EPROM razem z kopią atr-a.
Jeszcze prostsze jest to z plikami binarnymi.

Ostatnio edytowany przez epi (2008-07-19 21:29:50)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

4

Odp: przerobienie ATR na rom, epr

Da się podmienić procedurę SIO bez ruszania romu? Tak, jak można dodać handler urządzenia?

5

Odp: przerobienie ATR na rom, epr

Niestety w tej warstwie nie. Poza wektorami przerwań nie ma żadnego wektora w RAM. Jedyny znany mi sposób to NewDev.

Edit: Możesz oczywiście podnieść ROM i wpisać sobie własny wektor JSIOINT ($E459) ale zakładam, że a) doskonale o tym wiesz, b) nie o to Ci chodzi.

Ostatnio edytowany przez mono (2020-06-12 12:56:22)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

6

Odp: przerobienie ATR na rom, epr

dobrze zaprojektowany system tablice wektorow trzyma w ram, niestety XL OS do nich nie nalezy dlatego na etapie przygotowywania CAR z ATR nalezy zmodyfikowac (automat) wszstkie JSR i JMP (w ATR) z adresami z tabeli skokow na wlasne w RAM.

sposob jest popularny i skuteczny (wiele przykladow calodskow przeniesionych na CAR na AAGE). oczywiscie jesli chcesz atr ze zwyklymi binarkami to problem wogole nie istnieje :-)

http://atari.pl/hsc/ad.php?i=1.

7

Odp: przerobienie ATR na rom, epr

xxl napisał/a:

dobrze zaprojektowany system tablice wektorow trzyma w ram, niestety XL OS do nich nie nalezy

nie przesadzaj, jest to chyba jeden z bardziej elastycznych systemów na 8-bitowce.

Ciekawa jest ta siłowa metoda z podmianką skoku do SIO. Odrzuciłem ją w pierwszej chwili, bo może przypadkowo coś graficznego zamienić, muzycznego i ogólnie jakieś dane. Na szczęście w kodzie takie sytuacje nie występują; tylko w danych.
Niestety, skok do DSKINT skutkuje skokiem do SIOINT w romie, ale można ją okroić i już. Jest już to gdzieś rozwiązane? Czy trzeba sobie napisać?

@mono - jest tak jak piszesz :) Czasem jest jakaś sprytna/niestandardowa metoda. O newdev też myślałem, ale to też rodzi problemy.

Ostatnio edytowany przez qbahusak (2020-06-13 17:07:30)